[CalendarServer-changes] [6049] CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/ test_multiget.py
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 11 09:16:38 PDT 2010
Revision: 6049
http://trac.macosforge.org/projects/calendarserver/changeset/6049
Author: sagen at apple.com
Date: 2010-08-11 09:16:35 -0700 (Wed, 11 Aug 2010)
Log Message:
-----------
No cheating. Use protocol to populate calendar.
Modified Paths:
--------------
CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_multiget.py
Modified: CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_multiget.py
===================================================================
--- CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_multiget.py 2010-08-11 16:00:27 UTC (rev 6048)
+++ CalendarServer/branches/users/glyph/sql-store/twistedcaldav/test/test_multiget.py 2010-08-11 16:16:35 UTC (rev 6049)
@@ -1,4 +1,3 @@
-##
# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,20 +14,18 @@
##
import os
-import shutil
-from twisted.internet.defer import inlineCallbacks
+from twisted.internet.defer import inlineCallbacks, returnValue
+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 import davxml
-from twext.web2.dav.fileop import rmdir
from twext.web2.dav.util import davXMLFromStream
from twext.web2.test.test_server import SimpleRequest
from twistedcaldav import caldavxml
from twistedcaldav import ical
-from twistedcaldav.index import db_basename
from twistedcaldav.test.util import HomeTestCase, todo
from twistedcaldav.config import config
@@ -247,52 +244,40 @@
return self.calendar_query(cal_uri, query, got_xml, data, no_init)
+ @inlineCallbacks
def calendar_query(self, calendar_uri, query, got_xml, data, no_init):
- calendar_path = os.path.join(self.docroot, calendar_uri[1:])
- if not no_init and os.path.exists(calendar_path): rmdir(calendar_path)
+ if not no_init:
+ response = yield self.send(SimpleRequest(self.site, "MKCALENDAR",
+ calendar_uri))
+ response = IResponse(response)
+ if response.code != responsecode.CREATED:
+ self.fail("MKCALENDAR failed: %s" % (response.code,))
- def do_report(response):
- if not no_init:
- response = IResponse(response)
-
- if response.code != responsecode.CREATED:
- self.fail("MKCALENDAR failed: %s" % (response.code,))
-
- if data:
- for filename, icaldata in data.iteritems():
- path = os.path.join(calendar_path, filename + ".ics")
- f = open(path, "w")
- f.write(icaldata)
- f.close()
- else:
- # 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)
-
- # 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 data:
+ for filename, icaldata in data.iteritems():
+ request = SimpleRequest(self.site, "PUT",
+ calendar_uri + "/" + filename + ".ics")
+ request.stream = MemoryStream(icaldata)
+ yield self.send(request)
+ else:
+ # Add holiday events to calendar
+ for child in FilePath(self.holidays_dir).children():
+ if os.path.splitext(child.basename())[1] != ".ics": continue
+ request = SimpleRequest(self.site, "PUT",
+ calendar_uri + "/" + child.basename())
+ request.stream = MemoryStream(child.getContent())
+ yield self.send(request)
- request = SimpleRequest(self.site, "REPORT", calendar_uri)
- request.stream = MemoryStream(query.toxml())
+ request = SimpleRequest(self.site, "REPORT", calendar_uri)
+ request.stream = MemoryStream(query.toxml())
+ response = yield self.send(request)
- def do_test(response):
- response = IResponse(response)
+ response = IResponse(response)
- if response.code != responsecode.MULTI_STATUS:
- self.fail("REPORT failed: %s" % (response.code,))
+ if response.code != responsecode.MULTI_STATUS:
+ self.fail("REPORT failed: %s" % (response.code,))
- return davXMLFromStream(response.stream).addCallback(got_xml)
-
- return self.send(request, do_test)
-
- if no_init:
- return do_report(None)
- else:
- request = SimpleRequest(self.site, "MKCALENDAR", calendar_uri)
-
- return self.send(request, do_report)
+ returnValue(
+ (yield davXMLFromStream(response.stream).addCallback(got_xml))
+ )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100811/6f5a1299/attachment.html>
More information about the calendarserver-changes
mailing list