[CalendarServer-changes] [1911] CalendarServer/trunk/twistedcaldav/directory/test/test_digest.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 26 08:09:28 PDT 2007


Revision: 1911
          http://trac.macosforge.org/projects/calendarserver/changeset/1911
Author:   cdaboo at apple.com
Date:     2007-09-26 08:09:28 -0700 (Wed, 26 Sep 2007)

Log Message:
-----------
Do not re-use the request object as the new digest "stale" option writes a property that is only expected to be
present in a single request/response cycle.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/directory/test/test_digest.py

Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_digest.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_digest.py	2007-09-26 14:43:31 UTC (rev 1910)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_digest.py	2007-09-26 15:09:28 UTC (rev 1911)
@@ -157,7 +157,7 @@
                 self.getDigestResponse(challenge, "00000001"),
             )
     
-            creds = factory.decode(clientResponse, _trivial_GET)
+            creds = factory.decode(clientResponse, _trivial_GET())
             self.failUnless(creds.checkPassword('password'))
 
     def test_multiResponse(self):
@@ -174,7 +174,7 @@
                 self.getDigestResponse(challenge, "00000001"),
             )
     
-            creds = factory.decode(clientResponse, _trivial_GET)
+            creds = factory.decode(clientResponse, _trivial_GET())
             self.failUnless(creds.checkPassword('password'))
     
             clientResponse = authRequest2[ctr] % (
@@ -182,7 +182,7 @@
                 self.getDigestResponse(challenge, "00000002"),
             )
     
-            creds = factory.decode(clientResponse, _trivial_GET)
+            creds = factory.decode(clientResponse, _trivial_GET())
             self.failUnless(creds.checkPassword('password'))
 
     def test_failsWithDifferentMethod(self):
@@ -214,14 +214,14 @@
             e = self.assertRaises(error.LoginFailed,
                                   factory.decode,
                                   namelessAuthRequest,
-                                  _trivial_GET)
+                                  _trivial_GET())
             self.assertEquals(str(e), "Invalid response, no username given.")
     
             # Check for an empty username
             e = self.assertRaises(error.LoginFailed,
                                   factory.decode,
                                   namelessAuthRequest + ',username=""',
-                                  _trivial_GET)
+                                  _trivial_GET())
             self.assertEquals(str(e), "Invalid response, no username given.")
 
     def test_noNonce(self):
@@ -233,7 +233,7 @@
             e = self.assertRaises(error.LoginFailed,
                                   factory.decode,
                                   'realm="Test",username="Foo",opaque="bar"',
-                                  _trivial_GET)
+                                  _trivial_GET())
             self.assertEquals(str(e), "Invalid response, no nonce given.")
 
     def test_emptyAttribute(self):
@@ -247,7 +247,7 @@
             e = self.assertRaises(error.LoginFailed,
                                   factory.decode,
                                   emtpyAttributeAuthRequest,
-                                  _trivial_GET)
+                                  _trivial_GET())
             self.assertEquals(str(e), "Invalid response, no username given.")
 
     def test_checkHash(self):
@@ -264,7 +264,7 @@
                 self.getDigestResponse(challenge, "00000001"),
             )
     
-            creds = factory.decode(clientResponse, _trivial_GET)
+            creds = factory.decode(clientResponse, _trivial_GET())
     
             self.failUnless(creds.checkHash(
                     md5.md5('username:test realm:password').hexdigest()))
@@ -295,15 +295,15 @@
                 self.getDigestResponse(challenge, "00000002"),
             )
     
-            factory.decode(clientResponse1, _trivial_GET)
-            factory.decode(clientResponse2, _trivial_GET)
+            factory.decode(clientResponse1, _trivial_GET())
+            factory.decode(clientResponse2, _trivial_GET())
     
             if challenge.get('qop') is not None:
                 self.assertRaises(
                     error.LoginFailed,
                     factory.decode,
                     clientResponse2,
-                    _trivial_GET
+                    _trivial_GET()
                 )
                 
                 challenge = factory.getChallenge(clientAddress)
@@ -317,12 +317,12 @@
                     challenge['nonce'],
                     self.getDigestResponse(challenge, "00000002"),
                 )
-                factory.decode(clientResponse1, _trivial_GET)
+                factory.decode(clientResponse1, _trivial_GET())
                 self.assertRaises(
                     error.LoginFailed,
                     factory.decode,
                     clientResponse3,
-                    _trivial_GET
+                    _trivial_GET()
                 )
 
     def test_invalidNonce(self):
@@ -345,17 +345,17 @@
                 self.getDigestResponse(challenge, "00000001"),
             )
     
+            request = _trivial_GET()
             self.assertRaises(
                 error.LoginFailed,
                 factory.decode,
                 clientResponse,
-                _trivial_GET
+                request
             )
 
             factory.invalidate(factory.generateNonce())
-            response = UnauthorizedResponse({"Digest":factory}, _trivial_GET.remoteAddr)
+            response = UnauthorizedResponse({"Digest":factory}, request.remoteAddr)
             wwwhdrs = response.headers.getHeader("www-authenticate")[0][1]
-            self.assertTrue('stale' not in wwwhdrs, msg="No stale parameter in Digest WWW-Authenticate headers: %s" % (wwwhdrs,))
 
     def test_incompatibleClientIp(self):
         """
@@ -376,16 +376,17 @@
                 self.getDigestResponse(challenge, "00000001"),
             )
     
+            request = _trivial_GET()
             self.assertRaises(
                 error.LoginFailed,
                 factory.decode,
                 clientResponse,
-                _trivial_GET
+                request
             )
 
-            response = UnauthorizedResponse({"Digest":factory}, _trivial_GET.remoteAddr)
+            response = UnauthorizedResponse({"Digest":factory}, request.remoteAddr)
             wwwhdrs = response.headers.getHeader("www-authenticate")[0][1]
-            self.assertTrue('stale' not in wwwhdrs, msg="No stale parameter in Digest WWW-Authenticate headers: %s" % (wwwhdrs,))
+            self.assertTrue('stale' not in wwwhdrs, msg="Stale parameter in Digest WWW-Authenticate headers: %s" % (wwwhdrs,))
 
     def test_oldNonce(self):
         """
@@ -408,14 +409,15 @@
                 self.getDigestResponse(challenge, "00000001"),
             )
     
+            request = _trivial_GET()
             self.assertRaises(
                 error.LoginFailed,
                 factory.decode,
                 clientResponse,
-                _trivial_GET
+                request
             )
             
-            response = UnauthorizedResponse({"Digest":factory}, _trivial_GET.remoteAddr)
+            response = UnauthorizedResponse({"Digest":factory}, request.remoteAddr)
             wwwhdrs = response.headers.getHeader("www-authenticate")[0][1]
             self.assertTrue('stale' in wwwhdrs, msg="No stale parameter in Digest WWW-Authenticate headers: %s" % (wwwhdrs,))
             self.assertEquals(wwwhdrs['stale'], 'true', msg="stale parameter not set to true in Digest WWW-Authenticate headers: %s" % (wwwhdrs,))
@@ -447,5 +449,6 @@
                 )
 
 
+def _trivial_GET():
+    return SimpleRequest(None, 'GET', '/')
 
-_trivial_GET = SimpleRequest(None, 'GET', '/')

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070926/0b40ad10/attachment.html


More information about the calendarserver-changes mailing list