| | |
| | | return self._getTargetClass()(*args, **kw) |
| | | |
| | | def test_ctor_defaults(self): |
| | | import hashlib |
| | | from .. import _auth_tkt |
| | | with _Monkey(_auth_tkt, time_mod=_Timemod): |
| | | tkt = self._makeOne('SEEKRIT', 'USERID', '1.2.3.4') |
| | |
| | | self.assertEqual(tkt.time, _WHEN) |
| | | self.assertEqual(tkt.cookie_name, 'auth_tkt') |
| | | self.assertEqual(tkt.secure, False) |
| | | self.assertEqual(tkt.digest_algo, hashlib.md5) |
| | | |
| | | def test_ctor_explicit(self): |
| | | import hashlib |
| | | tkt = self._makeOne('SEEKRIT', 'USERID', '1.2.3.4', tokens=('a', 'b'), |
| | | user_data='DATA', time=_WHEN, |
| | | cookie_name='oatmeal', secure=True) |
| | | cookie_name='oatmeal', secure=True, |
| | | digest_algo=hashlib.sha512) |
| | | self.assertEqual(tkt.secret, 'SEEKRIT') |
| | | self.assertEqual(tkt.userid, 'USERID') |
| | | self.assertEqual(tkt.ip, '1.2.3.4') |
| | |
| | | self.assertEqual(tkt.time, _WHEN) |
| | | self.assertEqual(tkt.cookie_name, 'oatmeal') |
| | | self.assertEqual(tkt.secure, True) |
| | | self.assertEqual(tkt.digest_algo, hashlib.sha512) |
| | | |
| | | def test_ctor_string_algorithm(self): |
| | | import hashlib |
| | | tkt = self._makeOne('SEEKRIT', 'USERID', '1.2.3.4', tokens=('a', 'b'), |
| | | user_data='DATA', time=_WHEN, |
| | | cookie_name='oatmeal', secure=True, |
| | | digest_algo='sha1') |
| | | self.assertEqual(tkt.secret, 'SEEKRIT') |
| | | self.assertEqual(tkt.userid, 'USERID') |
| | | self.assertEqual(tkt.ip, '1.2.3.4') |
| | | self.assertEqual(tkt.tokens, 'a,b') |
| | | self.assertEqual(tkt.user_data, 'DATA') |
| | | self.assertEqual(tkt.time, _WHEN) |
| | | self.assertEqual(tkt.cookie_name, 'oatmeal') |
| | | self.assertEqual(tkt.secure, True) |
| | | self.assertEqual(tkt.digest_algo, hashlib.sha1) |
| | | |
| | | def test_digest(self): |
| | | from .._auth_tkt import calculate_digest, hashlib |
| | |
| | | |
| | | class Test_parse_ticket(unittest.TestCase): |
| | | |
| | | def _callFUT(self, secret='SEEKRIT', ticket=None, ip='1.2.3.4'): |
| | | def _callFUT(self, secret='SEEKRIT', ticket=None, ip='1.2.3.4', digest="md5"): |
| | | from .._auth_tkt import parse_ticket |
| | | return parse_ticket(secret, ticket, ip) |
| | | return parse_ticket(secret, ticket, ip, digest) |
| | | |
| | | def test_bad_timestamp(self): |
| | | from .._auth_tkt import BadTicket |
| | |
| | | self.assertEqual(tokens, ['a', 'b']) |
| | | self.assertEqual(user_data, 'DATA') |
| | | |
| | | def test_w_tokens_and_data_ok_alternate_digest(self): |
| | | from .._auth_tkt import calculate_digest, hashlib |
| | | digest = calculate_digest('1.2.3.4', _WHEN, 'SEEKRIT', 'USERID', |
| | | 'a,b', 'DATA', hashlib.sha256) |
| | | TICKET = '%s%08xUSERID!a,b!DATA' % (digest, _WHEN) |
| | | timestamp, userid, tokens, user_data = self._callFUT(ticket=TICKET, digest=hashlib.sha256) |
| | | self.assertEqual(timestamp, _WHEN) |
| | | self.assertEqual(userid, 'USERID') |
| | | self.assertEqual(tokens, ['a', 'b']) |
| | | self.assertEqual(user_data, 'DATA') |
| | | |
| | | |
| | | class Test_helpers(unittest.TestCase): |
| | | |
| | | # calculate_digest is not very testable, and fully exercised throug callers. |
| | | # calculate_digest is not very testable, and fully exercised through callers. |
| | | |
| | | def test_ints_to_bytes(self): |
| | | from struct import pack |