[CalendarServer-changes] [5590] CalendarServer/branches/users/wsanchez/transations/twistedcaldav/ test/test_collectioncontents.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue May 11 21:43:37 PDT 2010
Revision: 5590
http://trac.macosforge.org/projects/calendarserver/changeset/5590
Author: glyph at apple.com
Date: 2010-05-11 21:43:35 -0700 (Tue, 11 May 2010)
Log Message:
-----------
remove dependence on 'os' module.
Modified Paths:
--------------
CalendarServer/branches/users/wsanchez/transations/twistedcaldav/test/test_collectioncontents.py
Modified: CalendarServer/branches/users/wsanchez/transations/twistedcaldav/test/test_collectioncontents.py
===================================================================
--- CalendarServer/branches/users/wsanchez/transations/twistedcaldav/test/test_collectioncontents.py 2010-05-11 09:55:35 UTC (rev 5589)
+++ CalendarServer/branches/users/wsanchez/transations/twistedcaldav/test/test_collectioncontents.py 2010-05-12 04:43:35 UTC (rev 5590)
@@ -14,9 +14,7 @@
# limitations under the License.
##
-import os
-
-from twisted.internet.defer import DeferredList, succeed
+from twisted.internet.defer import DeferredList
from twext.python.filepath import CachingFilePath as FilePath
from twext.web2 import responsecode
from twext.web2.iweb import IResponse
@@ -36,8 +34,9 @@
"""
PUT request
"""
- data_dir = FilePath(__file__).sibling("data").path
+ dataPath = FilePath(__file__).sibling("data")
+
def setUp(self):
# Need to fake out memcache
def _getFakeMemcacheProtocol(self):
@@ -46,7 +45,7 @@
result = self._memcacheProtocol = Memcacher.memoryCacher()
return result
- self.patch(MemcacheLock, "_getMemcacheProtocol",
+ self.patch(MemcacheLock, "_getMemcacheProtocol",
_getFakeMemcacheProtocol)
# Need to not do implicit behavior during these tests
@@ -67,7 +66,8 @@
Make (regular) collection in calendar
"""
calendar_path, calendar_uri = self.mkdtemp("collection_in_calendar")
- os.rmdir(calendar_path)
+ calPath = FilePath(calendar_path)
+ calPath.remove()
def mkcalendar_cb(response):
response = IResponse(response)
@@ -81,7 +81,7 @@
if response.code != responsecode.FORBIDDEN:
self.fail("Incorrect response to nested MKCOL: %s" % (response.code,))
- nested_uri = os.path.join(calendar_uri, "nested")
+ nested_uri = "/".join([calendar_uri, "nested"])
request = SimpleRequest(self.site, "MKCOL", nested_uri)
self.send(request, mkcol_cb)
@@ -101,27 +101,37 @@
finally:
dst_file.close()
+ def openHolidays(self):
+ """
+ Open the 'Holidays.ics' calendar.
+
+ @return: an open file pointing at the start of Holidays.ics
+
+ @rtype: C{file}
+ """
+ f = self.dataPath.child("Holidays.ics").open()
+ self.addCleanup(f.close)
+ return f
+
+
def test_monolithic_ical(self):
"""
Monolithic iCalendar file in calendar collection
"""
# FIXME: Should FileStream be OK here?
- dst_file = file(os.path.join(self.data_dir, "Holidays.ics"))
- try:
- stream = FileStream(dst_file)
- return self._test_file_in_calendar("monolithic iCalendar file in calendar", (stream, responsecode.FORBIDDEN))
- finally:
- dst_file.close()
+ dst_file = self.openHolidays()
+ stream = FileStream(dst_file)
+ return self._test_file_in_calendar("monolithic iCalendar file in calendar", (stream, responsecode.FORBIDDEN))
+
def test_single_events(self):
"""
Single events in calendar collection
"""
work = []
- stream = file(os.path.join(self.data_dir, "Holidays.ics"))
- try: calendar = Component.fromStream(stream)
- finally: stream.close()
+ stream = self.openHolidays()
+ calendar = Component.fromStream(stream)
for subcomponent in calendar.subcomponents():
if subcomponent.name() == "VEVENT":
@@ -132,20 +142,24 @@
return self._test_file_in_calendar("single event in calendar", *work)
+
def test_duplicate_uids(self):
"""
Mutiple resources with the same UID.
"""
- stream = file(os.path.join(self.data_dir, "Holidays", "C318AA54-1ED0-11D9-A5E0-000A958A3252.ics"))
+ stream = self.dataPath.child(
+ "Holidays").child(
+ "C318AA54-1ED0-11D9-A5E0-000A958A3252.ics").open()
try: calendar = str(Component.fromStream(stream))
finally: stream.close()
return self._test_file_in_calendar(
"mutiple resources with the same UID",
- (MemoryStream(calendar), responsecode.CREATED ),
+ (MemoryStream(calendar), responsecode.CREATED),
(MemoryStream(calendar), responsecode.FORBIDDEN),
)
+
def _test_file_in_calendar(self, what, *work):
"""
Creates a calendar collection, then PUTs a resource into that collection
@@ -153,7 +167,8 @@
PUT request matches the given response_code.
"""
calendar_path, calendar_uri = self.mkdtemp("calendar")
- os.rmdir(calendar_path)
+ calPath = FilePath(calendar_path)
+ calPath.remove()
def mkcalendar_cb(response):
response = IResponse(response)
@@ -161,7 +176,7 @@
if response.code != responsecode.CREATED:
self.fail("MKCALENDAR failed: %s" % (response.code,))
- if not os.path.isdir(calendar_path):
+ if not calPath.isdir():
self.fail("MKCALENDAR did not create a collection")
ds = []
@@ -170,12 +185,11 @@
for stream, response_code in work:
def put_cb(response, stream=stream, response_code=response_code):
response = IResponse(response)
-
+
if response.code != response_code:
self.fail("Incorrect response to %s: %s (!= %s)" % (what, response.code, response_code))
- dst_uri = os.path.join(calendar_uri, "dst%d.ics" % (c,))
-
+ dst_uri = "/".join([calendar_uri, "dst%d.ics" % (c,)])
request = SimpleRequest(self.site, "PUT", dst_uri)
request.headers.setHeader("if-none-match", "*")
request.headers.setHeader("content-type", MimeType("text", "calendar"))
@@ -193,11 +207,9 @@
"""
Make sure database files are not listed as children.
"""
- colpath = self.site.resource.fp.path
- fd = open(os.path.join(colpath, "._bogus"), "w")
- fd.close()
- fd = open(os.path.join(colpath, "bogus"), "w")
- fd.close()
+ colpath = self.site.resource.fp
+ colpath.child("._bogus").touch()
+ colpath.child("bogus").touch()
children = self.site.resource.listChildren()
self.assertTrue("bogus" in children)
self.assertFalse("._bogus" in children)
@@ -207,7 +219,8 @@
Make (regular) collection in calendar
"""
calendar_path, calendar_uri = self.mkdtemp("dot_file_in_calendar")
- os.rmdir(calendar_path)
+ calPath = FilePath(calendar_path)
+ calPath.remove()
def mkcalendar_cb(response):
response = IResponse(response)
@@ -221,11 +234,14 @@
if response.code != responsecode.FORBIDDEN:
self.fail("Incorrect response to dot file PUT: %s" % (response.code,))
- stream = file(os.path.join(self.data_dir, "Holidays", "C318AA54-1ED0-11D9-A5E0-000A958A3252.ics"))
+ stream = self.dataPath.child(
+ "Holidays").child(
+ "C318AA54-1ED0-11D9-A5E0-000A958A3252.ics"
+ ).open()
try: calendar = str(Component.fromStream(stream))
finally: stream.close()
- event_uri = os.path.join(calendar_uri, ".event.ics")
+ event_uri = "/".join([calendar_uri, ".event.ics"])
request = SimpleRequest(self.site, "PUT", event_uri)
request.headers.setHeader("content-type", MimeType("text", "calendar"))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100511/e33c4104/attachment.html>
More information about the calendarserver-changes
mailing list