00001
00002 """
00003 RFC2617
00004
00005 HTTP Authentication: Basic and Digest Access Authentication
00006 """
00007 import unittest
00008 from ZSI import digest_auth
00009 from ZSI.wstools.logging import setBasicLoggerDEBUG
00010 setBasicLoggerDEBUG()
00011
00012 class DATestCase(unittest.TestCase):
00013 "test Union TypeCode"
00014
00015 def check_challenge_single_www_authenticate_header(self):
00016 challenge='Basic realm="WallyWorld"'
00017 print "=="*30
00018 print challenge
00019 print "=="*30
00020 cd = digest_auth.fetch_challenge(challenge)
00021 expect = {'challenge': 'Basic', 'realm': 'WallyWorld'}
00022 self.failUnless(cd == expect, 'Expected equivalent')
00023
00024 def check_challenge_single_www_authenticate_header2(self):
00025 challenge='Basic realm="Wally World"'
00026 cd = digest_auth.fetch_challenge(challenge)
00027 expect = {'challenge': 'Basic', 'realm': 'Wally World'}
00028 self.failUnless(cd == expect, 'Expected equivalent')
00029
00030 def check_challenge_single_www_authenticate_header3(self):
00031 challenge = '''Digest
00032 realm="testrealm@host.com",
00033 qop="auth,auth-int",
00034 nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
00035 opaque="5ccc069c403ebaf9f0171e9517f40e41"'''
00036 cd = digest_auth.fetch_challenge(challenge)
00037 expect = {'nonce': 'dcd98b7102dd2f0e8b11d0f600bfb0c093', 'challenge': 'Digest', 'opaque': '5ccc069c403ebaf9f0171e9517f40e41', 'realm': 'testrealm@host.com', 'qop': 'auth,auth-int'}
00038 self.failUnless(cd == expect, 'Expected equivalent')
00039
00040
00041
00042 def makeTestSuite():
00043 suite = unittest.TestSuite()
00044 suite.addTest(unittest.makeSuite(DATestCase, "check"))
00045 return suite
00046
00047 def main():
00048 unittest.main(defaultTest="makeTestSuite")
00049
00050 if __name__ == '__main__':
00051 main()
00052