[CalendarServer-changes] [7035] CalendarServer/trunk/contrib/performance/loadtest

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 17 13:42:21 PST 2011


Revision: 7035
          http://trac.macosforge.org/projects/calendarserver/changeset/7035
Author:   exarkun at twistedmatrix.com
Date:     2011-02-17 13:42:20 -0800 (Thu, 17 Feb 2011)
Log Message:
-----------
Add event deletion support to SnowLeopard iCal client

Modified Paths:
--------------
    CalendarServer/trunk/contrib/performance/loadtest/ical.py
    CalendarServer/trunk/contrib/performance/loadtest/test_ical.py

Modified: CalendarServer/trunk/contrib/performance/loadtest/ical.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/ical.py	2011-02-17 20:17:23 UTC (rev 7034)
+++ CalendarServer/trunk/contrib/performance/loadtest/ical.py	2011-02-17 21:42:20 UTC (rev 7035)
@@ -584,6 +584,21 @@
         return d
 
 
+    def deleteEvent(self, href):
+        """
+        Issue a DELETE for the given URL and remove local state
+        associated with that event.
+        """
+        d = self._request(
+            NO_CONTENT, 'DELETE', self.root + href[1:].encode('utf-8'))
+
+        calendar, uid = href.rsplit('/', 1)
+        del self._events[href]
+        del self._calendars[calendar + u'/'].events[uid]
+
+        return d
+
+
     def addEvent(self, href, vcalendar):
         headers = Headers({
                 'content-type': ['text/calendar'],

Modified: CalendarServer/trunk/contrib/performance/loadtest/test_ical.py
===================================================================
--- CalendarServer/trunk/contrib/performance/loadtest/test_ical.py	2011-02-17 20:17:23 UTC (rev 7034)
+++ CalendarServer/trunk/contrib/performance/loadtest/test_ical.py	2011-02-17 21:42:20 UTC (rev 7035)
@@ -26,7 +26,7 @@
 from protocol.caldav.definitions import caldavxml
 from protocol.caldav.definitions import csxml
 
-from loadtest.ical import Event, SnowLeopard
+from loadtest.ical import Event, Calendar, SnowLeopard
 from httpclient import MemoryConsumer
 
 EVENT_UID = 'D94F247D-7433-43AF-B84B-ADD684D023B0'
@@ -947,6 +947,37 @@
         return finished
 
 
+    def test_deleteEvent(self):
+        """
+        L{SnowLeopard.deleteEvent} DELETEs the event at the relative
+        URL passed to it and updates local state to reflect its
+        removal.
+        """
+        requests = []
+        def request(*args):
+            result = Deferred()
+            requests.append((result, args))
+            return result
+        self.client._request = request
+
+        calendar = Calendar(caldavxml.calendar, u'calendar', u'/foo/', None)
+        event = Event(calendar.url + u'bar.ics', None)
+        self.client._calendars[calendar.url] = calendar
+        self.client._setEvent(event.url, event)
+
+        d = self.client.deleteEvent(event.url)
+
+        result, req = requests.pop()
+
+        expectedResponseCode, method, url = req
+        self.assertEquals(method, 'DELETE')
+        self.assertEquals(url, 'http://127.0.0.1:80' + event.url)
+        self.assertIsInstance(url, str)
+
+        self.assertNotIn(event.url, self.client._events)
+        self.assertNotIn(u'bar.ics', calendar.events)
+
+
     def assertComponentsEqual(self, first, second):
         self.assertEquals(first.name, second.name, "Component names not equal")
         self.assertEquals(first.behavior, second.behavior, "Component behaviors not equal")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110217/8479ca8b/attachment.html>


More information about the calendarserver-changes mailing list