[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