[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