[CalendarServer-changes] [2360] CalendarServer/branches/propfind-cache/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Thu May 1 11:04:51 PDT 2008


Revision: 2360
          http://trac.macosforge.org/projects/calendarserver/changeset/2360
Author:   dreid at apple.com
Date:     2008-05-01 11:04:50 -0700 (Thu, 01 May 2008)

Log Message:
-----------
Some more tests for PropfindCachingResource

Modified Paths:
--------------
    CalendarServer/branches/propfind-cache/twistedcaldav/cache.py
    CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py

Modified: CalendarServer/branches/propfind-cache/twistedcaldav/cache.py
===================================================================
--- CalendarServer/branches/propfind-cache/twistedcaldav/cache.py	2008-04-30 23:16:07 UTC (rev 2359)
+++ CalendarServer/branches/propfind-cache/twistedcaldav/cache.py	2008-05-01 18:04:50 UTC (rev 2360)
@@ -141,7 +141,7 @@
         return self.observerFactory(propertyStore)
 
 
-    def _cacheResponse(self, response, request):
+    def _cacheResponse(self, request, response):
         if getattr(request, 'cacheRequest', False):
             if request.uri not in self._observers:
                 self._observers[request.uri] = self._observerForURI(request.uri)

Modified: CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py
===================================================================
--- CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py	2008-04-30 23:16:07 UTC (rev 2359)
+++ CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py	2008-05-01 18:04:50 UTC (rev 2360)
@@ -39,6 +39,33 @@
     return _
 
 
+
+class StubCacheChangeObserver(CacheChangeObserver):
+    def __init__(self, ps):
+        self._ps = ps
+        self.fp = self._ps.resource.fp
+
+        self._oldPropToken = None
+        self._oldDataToken = None
+        self.curPropToken = None
+        self.curDataToken = None
+
+    def _loadTokens(self):
+        self._dataToken = self.curDataToken
+        self._propToken = self.curPropToken
+
+
+
+class StubRequest(object):
+    def __init__(self, method, uri, authnUser):
+        self.method = method
+        self.uri = uri
+        self.authnUser = authnUser
+
+        self.cacheRequest = False
+
+
+
 class CacheChangeNotifierTests(TestCase):
     def setUp(self):
         self.props = InMemoryPropertyStore()
@@ -154,9 +181,11 @@
 
 
 class PropfindCachingResourceTests(TestCase):
-    # _tokenPathForURI tests
+    def setUp(self):
+        self.pcr = PropfindCachingResource(FilePath('/root'),
+                                                timeFunc=lambda:0)
+
     def test_tokenPathForURI(self):
-        pcr = PropfindCachingResource(FilePath('/root'))
         paths = [
             ('/principals/__uids__/557C330A-06E2-403B-BC24-CE3A253CDB5B/',
              '/root/principals/__uids__/557C330A-06E2-403B-BC24-CE3A253CDB5B'),
@@ -164,8 +193,54 @@
             ('/calendars/users/dreid/calendar', '/root/calendars/users/dreid')]
 
         for inPath, outPath in paths:
-            self.assertEquals(pcr._tokenPathForURI(inPath).path, outPath)
+            self.assertEquals(self.pcr._tokenPathForURI(inPath).path, outPath)
 
 
     def test_observerForURI(self):
-        pcr = PropfindCachingResource(FilePath('/root'))
+        self.pcr.observerFactory = StubCacheChangeObserver
+
+        paths = [
+            ('/principals/__uids__/557C330A-06E2-403B-BC24-CE3A253CDB5B/',
+             '/root/principals/__uids__/557C330A-06E2-403B-BC24-CE3A253CDB5B'),
+            ('/calendars/users/dreid/', '/root/calendars/users/dreid'),
+            ('/calendars/users/dreid/calendar', '/root/calendars/users/dreid')]
+
+        for inPath, outPath in paths:
+            self.assertEquals(self.pcr._observerForURI(inPath).fp.path,
+                              outPath)
+
+
+    def test_cacheResponseTaggedRequestTrue(self):
+        response = object()
+        request = StubRequest('GET', '/root/calendars/users/dreid', 'dreid')
+
+        request.cacheRequest = True
+
+        r = self.pcr._cacheResponse(request, response)
+        self.assertEquals(r, response)
+
+        self.assertEquals(self.pcr._responses,
+                          {('GET',
+                            '/root/calendars/users/dreid',
+                            'dreid'): (0, response)})
+
+
+    def test_cacheResponseTaggedRequestFalse(self):
+        response = object()
+        request = StubRequest('GET', '/root/calendars/users/dreid', 'dreid')
+
+        r = self.pcr._cacheResponse(request, response)
+        self.assertEquals(r, response)
+
+        self.assertEquals(self.pcr._responses, {})
+
+
+    def test_cacheResposneUntaggedRequest(self):
+        response = object()
+        request = StubRequest('GET', '/root/calendars/users/dreid', 'dreid')
+        del request.cacheRequest
+
+        r = self.pcr._cacheResponse(request, response)
+        self.assertEquals(r, response)
+
+        self.assertEquals(self.pcr._responses, {})

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080501/74789d2c/attachment.html


More information about the calendarserver-changes mailing list