[CalendarServer-changes] [6016] CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test
source_changes at macosforge.org
source_changes at macosforge.org
Mon Aug 9 11:24:29 PDT 2010
Revision: 6016
http://trac.macosforge.org/projects/calendarserver/changeset/6016
Author: glyph at apple.com
Date: 2010-08-09 11:24:28 -0700 (Mon, 09 Aug 2010)
Log Message:
-----------
remove cheating from test_freebusyquery (although it's apparently not used)
Modified Paths:
--------------
CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_calendarquery.py
CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_freebusyquery.py
Modified: CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_calendarquery.py
===================================================================
--- CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_calendarquery.py 2010-08-09 18:06:44 UTC (rev 6015)
+++ CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_calendarquery.py 2010-08-09 18:24:28 UTC (rev 6016)
@@ -37,6 +37,37 @@
from txcaldav.calendarstore.test.test_postgres import buildStore
from txcaldav.calendarstore.test.common import StubNotifierFactory
+
+ at inlineCallbacks
+def addEventsDir(testCase, eventsDir, uri):
+ """
+ Add events to a L{HomeTestCase} from a directory.
+
+ @param testCase: The test case to add events to.
+ @type testCase: L{HomeTestCase}
+
+ @param eventsDir: A directory full of events.
+ @type eventsDir: L{FilePath}
+
+ @param uri: The URI-path of the calendar to insert events into.
+ @type uri: C{str}
+
+ @return: a L{Deferred} which fires with the number of added calendar object
+ resources.
+ """
+ count = 0
+ for child in eventsDir.children():
+ count += 1
+ if child.basename().split(".")[-1] != "ics":
+ continue
+ request = SimpleRequest(testCase.site, "PUT",
+ uri + "/" + child.basename())
+ request.stream = MemoryStream(child.getContent())
+ yield testCase.send(request)
+ returnValue(count)
+
+
+
class CalendarQuery (HomeTestCase):
"""
calendar-query REPORT
@@ -293,6 +324,7 @@
return self.calendar_query(cal_uri, query, got_xml)
+
@inlineCallbacks
def calendar_query(self, calendar_uri, query, got_xml):
@@ -303,13 +335,7 @@
self.fail("MKCALENDAR failed: %s" % (response.code,))
# Add holiday events to calendar
- for child in FilePath(self.holidays_dir).children():
- if child.basename().split(".")[-1] != "ics":
- continue
- request = SimpleRequest(self.site, "PUT", calendar_uri + "/" +
- child.basename())
- request.stream = MemoryStream(child.getContent())
- response = yield self.send(request)
+ yield addEventsDir(self, FilePath(self.holidays_dir), calendar_uri)
request = SimpleRequest(self.site, "REPORT", calendar_uri)
request.stream = MemoryStream(query.toxml())
Modified: CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_freebusyquery.py
===================================================================
--- CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_freebusyquery.py 2010-08-09 18:06:44 UTC (rev 6015)
+++ CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_freebusyquery.py 2010-08-09 18:24:28 UTC (rev 6016)
@@ -18,18 +18,21 @@
from twisted.trial.unittest import SkipTest
import os
-import shutil
+from twext.python.filepath import CachingFilePath as FilePath
+
from twext.web2 import responsecode
from twext.web2.iweb import IResponse
from twext.web2.stream import MemoryStream
-from twext.web2.dav.fileop import rmdir
+
from twext.web2.test.test_server import SimpleRequest
import twistedcaldav.test.util
from twistedcaldav import caldavxml
-from twistedcaldav.index import db_basename
+from twisted.internet.defer import inlineCallbacks, returnValue
+from twistedcaldav.test.test_calendarquery import addEventsDir
+
class FreeBusyQuery (twistedcaldav.test.util.TestCase):
"""
free-busy-query REPORT
@@ -73,47 +76,35 @@
)
query = caldavxml.FreeBusyQuery(query_timerange,)
-
+
def got_calendar(calendar):
pass
return self.free_busy_query(cal_uri, query, got_calendar)
+
+ @inlineCallbacks
def free_busy_query(self, calendar_uri, query, got_calendar):
- calendar_path = os.path.join(self.docroot, calendar_uri[1:])
- if os.path.exists(calendar_path): rmdir(calendar_path)
+ request = SimpleRequest(self.site, "MKCALENDAR", calendar_uri)
+ response = yield self.send(request)
+ response = IResponse(response)
- def do_report(response):
- response = IResponse(response)
+ if response.code != responsecode.CREATED:
+ self.fail("MKCALENDAR failed: %s" % (response.code,))
- if response.code != responsecode.CREATED:
- self.fail("MKCALENDAR failed: %s" % (response.code,))
+ yield addEventsDir(self, FilePath(self.holidays_dir), calendar_uri)
- # Add holiday events to calendar
- # We're cheating by simply copying the files in
- for filename in os.listdir(self.holidays_dir):
- if os.path.splitext(filename)[1] != ".ics": continue
- path = os.path.join(self.holidays_dir, filename)
- shutil.copy(path, calendar_path)
+ request = SimpleRequest(self.site, "REPORT", calendar_uri)
+ request.stream = MemoryStream(query.toxml())
+ response = yield self.send(request)
+ response = IResponse(response)
- # Delete the index because we cheated
- index_path = os.path.join(calendar_path, db_basename)
- if os.path.isfile(index_path): os.remove(index_path)
+ if response.code != responsecode.OK:
+ self.fail("REPORT failed: %s" % (response.code,))
- request = SimpleRequest(self.site, "REPORT", calendar_uri)
- request.stream = MemoryStream(query.toxml())
+ result = yield Component.fromIStream(response.stream).addCallback(
+ got_calendar
+ )
+ returnValue(result)
- def do_test(response):
- response = IResponse(response)
-
- if response.code != responsecode.OK:
- self.fail("REPORT failed: %s" % (response.code,))
-
- return Component.fromIStream(response.stream).addCallback(got_calendar)
-
- return self.send(request, do_test, calendar_path)
-
- request = SimpleRequest(self.site, "MKCALENDAR", calendar_uri)
-
- return self.send(request, do_report, calendar_path)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100809/5f94fca1/attachment.html>
More information about the calendarserver-changes
mailing list