[CalendarServer-changes] [3853] CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/ Twisted

source_changes at macosforge.org source_changes at macosforge.org
Thu Mar 12 14:51:19 PDT 2009


Revision: 3853
          http://trac.macosforge.org/projects/calendarserver/changeset/3853
Author:   exarkun at twistedmatrix.com
Date:     2009-03-12 14:51:19 -0700 (Thu, 12 Mar 2009)
Log Message:
-----------
Make ACL, Quote, and util.TestCase friends again

Modified Paths:
--------------
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_acl.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_quota.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch

Modified: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_acl.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_acl.patch	2009-03-12 21:43:20 UTC (rev 3852)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_acl.patch	2009-03-12 21:51:19 UTC (rev 3853)
@@ -1,6 +1,6 @@
 Index: twisted/web2/dav/test/test_acl.py
 ===================================================================
---- twisted/web2/dav/test/test_acl.py	(revision 26343)
+--- twisted/web2/dav/test/test_acl.py	(revision 26346)
 +++ twisted/web2/dav/test/test_acl.py	(working copy)
 @@ -30,6 +30,7 @@
  from twisted.web2.auth import basic
@@ -10,7 +10,7 @@
  from twisted.web2.dav.util import davXMLFromStream
  from twisted.web2.dav.auth import TwistedPasswordProperty, IPrincipal, DavRealm, TwistedPropertyChecker, AuthenticationWrapper
  from twisted.web2.dav.fileop import rmdir
-@@ -39,6 +40,25 @@
+@@ -39,74 +40,87 @@
  from twisted.web2.dav.test.util import Site, serialize
  from twisted.web2.dav.test.test_resource import TestResource, TestDAVPrincipalResource
  
@@ -36,57 +36,121 @@
  class ACL(twisted.web2.dav.test.util.TestCase):
      """
      RFC 3744 (WebDAV ACL) tests.
-@@ -47,8 +67,19 @@
-         if not hasattr(self, "_docroot"):
-             docroot = self.mktemp()
-             os.mkdir(docroot)
+     """
+-    def _getDocumentRoot(self):
+-        if not hasattr(self, "_docroot"):
+-            docroot = self.mktemp()
+-            os.mkdir(docroot)
 -            rootresource = self.resource_class(docroot)
++    def createDocumentRoot(self):
++        docroot = self.mktemp()
++        os.mkdir(docroot)
  
-+            userResource = TestDAVPrincipalResource("/principals/users/user01")
-+            userResource.writeDeadProperty(TwistedPasswordProperty("user01"))
-+
-+            principalCollection = TestPrincipalsCollection(
-+                "/principals/",
-+                children={"users": TestPrincipalsCollection(
-+                        "/principals/users/",
-+                        children={"user01": userResource})})
-+
-+            rootResource = self.resource_class(
-+                docroot, principalCollections=(principalCollection,))
-+
-             portal = Portal(DavRealm())
-             portal.registerChecker(TwistedPropertyChecker())
+-            portal = Portal(DavRealm())
+-            portal.registerChecker(TwistedPropertyChecker())
++        userResource = TestDAVPrincipalResource("/principals/users/user01")
++        userResource.writeDeadProperty(TwistedPasswordProperty("user01"))
  
-@@ -57,26 +88,14 @@
-             loginInterfaces = (IPrincipal,)
+-            credentialFactories = (basic.BasicCredentialFactory(""),)
++        principalCollection = TestPrincipalsCollection(
++            "/principals/",
++            children={"users": TestPrincipalsCollection(
++                    "/principals/users/",
++                    children={"user01": userResource})})
  
-             self.site = Site(AuthenticationWrapper(
+-            loginInterfaces = (IPrincipal,)
++        rootResource = self.resource_class(
++            docroot, principalCollections=(principalCollection,))
+ 
+-            self.site = Site(AuthenticationWrapper(
 -                rootresource, 
-+                rootResource,
-                 portal,
-                 credentialFactories,
-                 loginInterfaces
-             ))
+-                portal,
+-                credentialFactories,
+-                loginInterfaces
+-            ))
++        portal = Portal(DavRealm())
++        portal.registerChecker(TwistedPropertyChecker())
  
 -            rootresource.setAccessControlList(self.grant(davxml.All()))
-+            rootResource.setAccessControlList(self.grant(davxml.All()))
++        credentialFactories = (basic.BasicCredentialFactory(""),)
  
 -            userresource = TestDAVPrincipalResource("/principals/user01")
 -            userresource.writeDeadProperty(TwistedPasswordProperty.fromString("user01"))
--
++        loginInterfaces = (IPrincipal,)
+ 
 -            rootresource.putChild(
 -                "principals",
 -                TestResource("/principals", {"user01": userresource})
 -            )
--
++        self.site = Site(AuthenticationWrapper(
++            rootResource,
++            portal,
++            credentialFactories,
++            loginInterfaces
++        ))
+ 
 -            rootresource.writeDeadProperty(
 -                davxml.PrincipalCollectionSet(davxml.HRef("/principals/"))
 -            )
++        rootResource.setAccessControlList(self.grant(davxml.All()))
+ 
+-            for name, acl in (
+-                ("none"       , self.grant()),
+-                ("read"       , self.grant(davxml.Read())),
+-                ("read-write" , self.grant(davxml.Read(), davxml.Write())),
+-                ("unlock"     , self.grant(davxml.Unlock())),
+-                ("all"        , self.grant(davxml.All())),
+-            ):
+-                filename = os.path.join(docroot, name)
+-                if not os.path.isfile(filename):
+-                    file(filename, "w").close()
+-                resource = self.resource_class(filename)
+-                resource.setAccessControlList(acl)
++        for name, acl in (
++            ("none"       , self.grant()),
++            ("read"       , self.grant(davxml.Read())),
++            ("read-write" , self.grant(davxml.Read(), davxml.Write())),
++            ("unlock"     , self.grant(davxml.Unlock())),
++            ("all"        , self.grant(davxml.All())),
++        ):
++            filename = os.path.join(docroot, name)
++            if not os.path.isfile(filename):
++                file(filename, "w").close()
++            resource = self.resource_class(filename)
++            resource.setAccessControlList(acl)
+ 
+-            for name, acl in (
+-                ("nobind" , self.grant()),
+-                ("bind"   , self.grant(davxml.Bind())),
+-                ("unbind" , self.grant(davxml.Bind(), davxml.Unbind())),
+-            ):
+-                dirname = os.path.join(docroot, name)
+-                if not os.path.isdir(dirname):
+-                    os.mkdir(dirname)
+-                resource = self.resource_class(dirname)
+-                resource.setAccessControlList(acl)
++        for name, acl in (
++            ("nobind" , self.grant()),
++            ("bind"   , self.grant(davxml.Bind())),
++            ("unbind" , self.grant(davxml.Bind(), davxml.Unbind())),
++        ):
++            dirname = os.path.join(docroot, name)
++            if not os.path.isdir(dirname):
++                os.mkdir(dirname)
++            resource = self.resource_class(dirname)
++            resource.setAccessControlList(acl)
++        return docroot
+ 
+-            self._docroot = docroot
+ 
+-        return self._docroot
 -
-             for name, acl in (
-                 ("none"       , self.grant()),
-                 ("read"       , self.grant(davxml.Read())),
-@@ -342,9 +361,7 @@
+-    docroot = property(_getDocumentRoot)
+-
+     def restore(self):
+         if hasattr(self, "_docroot"):
+             print "*"*40
+@@ -342,9 +356,7 @@
                  if method == "GET":
                      ok = responsecode.OK
                  elif method == "REPORT":
@@ -97,7 +161,7 @@
                  else:
                      raise AssertionError("We shouldn't be here.  (method = %r)" % (method,))
  
-@@ -358,6 +375,9 @@
+@@ -358,6 +370,9 @@
                      path = os.path.join(self.docroot, name)
  
                      request = SimpleRequest(self.site, method, "/" + name)

Modified: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_quota.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_quota.patch	2009-03-12 21:43:20 UTC (rev 3852)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.test_quota.patch	2009-03-12 21:51:19 UTC (rev 3853)
@@ -12,10 +12,10 @@
 +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 +# copies of the Software, and to permit persons to whom the Software is
 +# furnished to do so, subject to the following conditions:
-+# 
++#
 +# The above copyright notice and this permission notice shall be included in all
 +# copies or substantial portions of the Software.
-+# 
++#
 +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -39,28 +39,28 @@
 +
 +class QuotaBase(twisted.web2.dav.test.util.TestCase):
 +
-+    def setUp(self):
-+        
-+        #super(Quota, self).setUp()
-+        self.docroot = self.mktemp()
-+        os.mkdir(self.docroot)
-+        rootresource = self.resource_class(self.docroot)
++    def createDocumentRoot(self):
++        docroot = self.mktemp()
++        os.mkdir(docroot)
++        rootresource = self.resource_class(docroot)
 +        rootresource.setAccessControlList(self.grantInherit(davxml.All()))
 +        self.site = Site(rootresource)
 +        self.site.resource.setQuotaRoot(None, 100000)
++        return docroot
 +
++
 +    def checkQuota(self, value):
 +        def _defer(quota):
 +            self.assertEqual(quota, value)
-+            
++
 +        d = self.site.resource.currentQuotaUse(None)
 +        d.addCallback(_defer)
 +        return d
-+        
++
 +class QuotaEmpty(QuotaBase):
 +
 +    def test_Empty_Quota(self):
-+        
++
 +        return self.checkQuota(0)
 +
 +class QuotaPUT(QuotaBase):
@@ -77,11 +77,11 @@
 +            if response.code != responsecode.CREATED:
 +                self.fail("Incorrect response code for PUT (%s != %s)"
 +                          % (response.code, responsecode.CREATED))
-+                
++
 +            return self.checkQuota(100)
 +
 +        request = SimpleRequest(self.site, "PUT", dst_uri)
-+        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))        
++        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
 +        return self.send(request, checkResult)
 +
 +class QuotaDELETE(QuotaBase):
@@ -98,26 +98,26 @@
 +            if response.code != responsecode.CREATED:
 +                self.fail("Incorrect response code for PUT (%s != %s)"
 +                          % (response.code, responsecode.CREATED))
-+            
++
 +            def doDelete(_ignore):
 +                def checkDELETEResult(response):
 +                    response = IResponse(response)
-+        
++
 +                    if response.code != responsecode.NO_CONTENT:
 +                        self.fail("Incorrect response code for PUT (%s != %s)"
 +                                  % (response.code, responsecode.NO_CONTENT))
 +
 +                    return self.checkQuota(0)
-+                    
++
 +                request = SimpleRequest(self.site, "DELETE", dst_uri)
 +                return self.send(request, checkDELETEResult)
-+                
++
 +            d = self.checkQuota(100)
 +            d.addCallback(doDelete)
 +            return d
 +
 +        request = SimpleRequest(self.site, "PUT", dst_uri)
-+        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))        
++        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
 +        return self.send(request, checkPUTResult)
 +
 +class OverQuotaPUT(QuotaBase):
@@ -136,11 +136,11 @@
 +            if response.code != responsecode.INSUFFICIENT_STORAGE_SPACE:
 +                self.fail("Incorrect response code for PUT (%s != %s)"
 +                          % (response.code, responsecode.INSUFFICIENT_STORAGE_SPACE))
-+                
++
 +            return self.checkQuota(0)
 +
 +        request = SimpleRequest(self.site, "PUT", dst_uri)
-+        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))        
++        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
 +        return self.send(request, checkResult)
 +
 +class QuotaOKAdjustment(QuotaBase):
@@ -157,21 +157,21 @@
 +            if response.code != responsecode.CREATED:
 +                self.fail("Incorrect response code for PUT (%s != %s)"
 +                          % (response.code, responsecode.CREATED))
-+            
++
 +            def doOKAdjustment(_ignore):
 +                def checkAdjustmentResult(_ignore):
 +                    return self.checkQuota(10)
-+                
++
 +                d = self.site.resource.quotaSizeAdjust(None, -90)
 +                d.addCallback(checkAdjustmentResult)
 +                return d
-+                
++
 +            d = self.checkQuota(100)
 +            d.addCallback(doOKAdjustment)
 +            return d
 +
 +        request = SimpleRequest(self.site, "PUT", dst_uri)
-+        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))        
++        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
 +        return self.send(request, checkPUTResult)
 +
 +class QuotaBadAdjustment(QuotaBase):
@@ -188,19 +188,19 @@
 +            if response.code != responsecode.CREATED:
 +                self.fail("Incorrect response code for PUT (%s != %s)"
 +                          % (response.code, responsecode.CREATED))
-+            
++
 +            def doBadAdjustment(_ignore):
 +                def checkAdjustmentResult(_ignore):
 +                    return self.checkQuota(100)
-+                
++
 +                d = self.site.resource.quotaSizeAdjust(None, -200)
 +                d.addCallback(checkAdjustmentResult)
 +                return d
-+                
++
 +            d = self.checkQuota(100)
 +            d.addCallback(doBadAdjustment)
 +            return d
 +
 +        request = SimpleRequest(self.site, "PUT", dst_uri)
-+        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))        
++        request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
 +        return self.send(request, checkPUTResult)

Modified: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch	2009-03-12 21:43:20 UTC (rev 3852)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch	2009-03-12 21:51:19 UTC (rev 3853)
@@ -1,8 +1,87 @@
-Index: twisted/web2/dav/test/util.py
+Index: util.py
 ===================================================================
---- twisted/web2/dav/test/util.py	(revision 26343)
-+++ twisted/web2/dav/test/util.py	(working copy)
-@@ -197,10 +197,11 @@
+--- util.py	(revision 26346)
++++ util.py	(working copy)
+@@ -117,44 +117,47 @@
+ 
+     grantInherit = staticmethod(grantInherit)
+ 
+-    def _getDocumentRoot(self):
+-        if not hasattr(self, "_docroot"):
+-            log.msg("Setting up docroot for %s" % (self.__class__,))
++    def createDocumentRoot(self):
++        docroot = self.mktemp()
++        os.mkdir(docroot)
++        rootresource = self.resource_class(docroot)
++        rootresource.setAccessControlList(self.grantInherit(davxml.All()))
+ 
+-            docroot = self.mktemp()
+-            os.mkdir(docroot)
+-            rootresource = self.resource_class(docroot)
+-            rootresource.setAccessControlList(self.grantInherit(davxml.All()))
++        dirnames = (
++            os.path.join(docroot, "dir1"),                          # 0
++            os.path.join(docroot, "dir2"),                          # 1
++            os.path.join(docroot, "dir2", "subdir1"),               # 2
++            os.path.join(docroot, "dir3"),                          # 3
++            os.path.join(docroot, "dir4"),                          # 4
++            os.path.join(docroot, "dir4", "subdir1"),               # 5
++            os.path.join(docroot, "dir4", "subdir1", "subsubdir1"), # 6
++            os.path.join(docroot, "dir4", "subdir2"),               # 7
++            os.path.join(docroot, "dir4", "subdir2", "dir1"),       # 8
++            os.path.join(docroot, "dir4", "subdir2", "dir2"),       # 9
++        )
+ 
+-            dirnames = (
+-                os.path.join(docroot, "dir1"),                          # 0
+-                os.path.join(docroot, "dir2"),                          # 1
+-                os.path.join(docroot, "dir2", "subdir1"),               # 2
+-                os.path.join(docroot, "dir3"),                          # 3
+-                os.path.join(docroot, "dir4"),                          # 4
+-                os.path.join(docroot, "dir4", "subdir1"),               # 5
+-                os.path.join(docroot, "dir4", "subdir1", "subsubdir1"), # 6
+-                os.path.join(docroot, "dir4", "subdir2"),               # 7
+-                os.path.join(docroot, "dir4", "subdir2", "dir1"),       # 8
+-                os.path.join(docroot, "dir4", "subdir2", "dir2"),       # 9
+-            )
++        for dir in dirnames:
++            os.mkdir(dir)
+ 
+-            for dir in dirnames:
+-                os.mkdir(dir)
++        src = os.path.dirname(__file__)
++        filenames = [
++            os.path.join(src, f)
++            for f in os.listdir(src)
++            if os.path.isfile(os.path.join(src, f))
++        ]
+ 
+-            src = os.path.dirname(__file__)
+-            filenames = [
+-                os.path.join(src, f)
+-                for f in os.listdir(src)
+-                if os.path.isfile(os.path.join(src, f))
+-            ]
++        for dirname in (docroot,) + dirnames[3:8+1]:
++            for filename in filenames[:5]:
++                copy(filename, dirname)
++        return docroot
+ 
+-            for dirname in (docroot,) + dirnames[3:8+1]:
+-                for filename in filenames[:5]:
+-                    copy(filename, dirname)
+ 
+-            self._docroot = docroot
++    def _getDocumentRoot(self):
++        if not hasattr(self, "_docroot"):
++            log.msg("Setting up docroot for %s" % (self.__class__,))
+ 
++            self._docroot = self.createDocumentRoot()
++
+         return self._docroot
+ 
+     docroot = property(_getDocumentRoot)
+@@ -197,10 +200,11 @@
          d.addCallback(lambda resource: resource.renderHTTP(request))
          d.addCallback(request._cbFinishRender)
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090312/ebf1571c/attachment-0001.html>


More information about the calendarserver-changes mailing list