[Zope3-checkins] SVN: Zope3/trunk/src/zope/app/tests/ If a
username:password is passed as the Authorization header,
use base64.encodestring() on it.
Sidnei da Silva
sidnei at awkly.org
Thu Oct 7 15:20:03 EDT 2004
Log message for revision 27786:
If a username:password is passed as the Authorization header, use base64.encodestring() on it.
Changed:
U Zope3/trunk/src/zope/app/tests/functional.py
U Zope3/trunk/src/zope/app/tests/test_functional.py
-=-
Modified: Zope3/trunk/src/zope/app/tests/functional.py
===================================================================
--- Zope3/trunk/src/zope/app/tests/functional.py 2004-10-07 18:40:35 UTC (rev 27785)
+++ Zope3/trunk/src/zope/app/tests/functional.py 2004-10-07 19:20:01 UTC (rev 27786)
@@ -491,6 +491,10 @@
name = 'HTTP_' + name
environment[name] = value.rstrip()
+ auth_key = 'HTTP_AUTHORIZATION'
+ if environment.has_key(auth_key):
+ environment[auth_key] = auth_header(environment[auth_key])
+
outstream = HTTPTaskStub()
@@ -532,6 +536,20 @@
def split_header(header):
return headerre.match(header).group(1, 2)
+basicre = re.compile('Basic (.+)?:(.+)?$')
+def auth_header(header):
+ match = basicre.match(header)
+ if match:
+ import base64
+ u, p = match.group(1, 2)
+ if u is None:
+ u = ''
+ if p is None:
+ p = ''
+ auth = base64.encodestring('%s:%s' % (u, p))
+ return 'Basic %s' % auth[:-1]
+ return header
+
def getRootFolder():
return FunctionalTestSetup().getRootFolder()
Modified: Zope3/trunk/src/zope/app/tests/test_functional.py
===================================================================
--- Zope3/trunk/src/zope/app/tests/test_functional.py 2004-10-07 18:40:35 UTC (rev 27785)
+++ Zope3/trunk/src/zope/app/tests/test_functional.py 2004-10-07 19:20:01 UTC (rev 27786)
@@ -55,6 +55,39 @@
self.body_output.write(BODY)
self.assertEqual(self.wrapper.getOutput(), BODY)
+class AuthHeaderTestCase(unittest.TestCase):
+ def test_auth_encoded(self):
+ auth_header = zope.app.tests.functional.auth_header
+ header = 'Basic Z2xvYmFsbWdyOmdsb2JhbG1ncnB3'
+ self.assertEquals(auth_header(header), header)
+
+ def test_auth_non_encoded(self):
+ auth_header = zope.app.tests.functional.auth_header
+ header = 'Basic globalmgr:globalmgrpw'
+ expected = 'Basic Z2xvYmFsbWdyOmdsb2JhbG1ncnB3'
+ self.assertEquals(auth_header(header), expected)
+
+ def test_auth_non_encoded_empty(self):
+ auth_header = zope.app.tests.functional.auth_header
+ header = 'Basic globalmgr:'
+ expected = 'Basic Z2xvYmFsbWdyOg=='
+ self.assertEquals(auth_header(header), expected)
+ header = 'Basic :pass'
+ expected = 'Basic OnBhc3M='
+ self.assertEquals(auth_header(header), expected)
+
+ def test_auth_non_encoded_colon(self):
+ auth_header = zope.app.tests.functional.auth_header
+ header = 'Basic globalmgr:pass:pass'
+ expected = 'Basic Z2xvYmFsbWdyOnBhc3M6cGFzcw=='
+ self.assertEquals(auth_header(header), expected)
+
def test_suite():
- return unittest.makeSuite(DocResponseWrapperTestCase)
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(DocResponseWrapperTestCase))
+ suite.addTest(unittest.makeSuite(AuthHeaderTestCase))
+ return suite
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
More information about the Zope3-Checkins
mailing list