def test_tkt_attributes(self): tkt = AuthTkt('secret', '123') etkt = EncryptedAuthTkt(tkt, 'cryptosecret') self.assertEqual(tkt.uid, etkt.uid) self.assertEqual(tkt.cookie_value(), etkt.cookie_value()) self.assertEqual(tkt.ticket(), etkt.ticket()) self.assertEqual(tkt.cookie('cookie'), etkt.cookie('cookie'))
class AuthTktInternalTests(unittest.TestCase): def setUp(self): self.tkt = AuthTkt('secret', '123', 'userdata', '123.45.67.89', ('foo', 'bar'), ts=9001) def test_digest0(self): self.assertEqual(self.tkt._digest0(), '7c7ab37013af6e77759ec5e2f6129928') def test_encode_ip(self): self.assertEqual(self.tkt._encode_ip(self.tkt.ip), b'{-CY') def test_encode_ts(self): self.assertEqual(self.tkt._encode_ts(self.tkt.ts), b'\x00\x00#)')
def test_construction_minimal(self): tkt = AuthTkt('secret', '123') self.assertEqual(tkt.secret, 'secret') self.assertEqual(tkt.uid, '123') self.assertEqual(tkt.data, '') self.assertEqual(tkt.ip, '0.0.0.0') self.assertEqual(tkt.tokens, '') self.assertTrue(tkt.base64) self.assertTrue(tkt.ts > 0)
def from_data( authtkt_secret, payload_secret, uid, data=None, ip='0.0.0.0', tokens=(), base64=True, ts=None, encoding='utf-8'): data = json.dumps(data or {}) data = _encrypt_userdata( to_bytes(data, encoding), to_bytes(payload_secret, encoding)) auth_ticket = AuthTkt( authtkt_secret, uid, data, ip, tokens, base64, ts, encoding=encoding) return EncryptedAuthTkt(auth_ticket, payload_secret)
def test_construction_optional(self): tkt = AuthTkt('secret', '123', 'userdata', '127.0.0.1', ('foo ', 'bar'), False, 9001) self.assertEqual(tkt.secret, 'secret') self.assertEqual(tkt.uid, '123') self.assertEqual(tkt.data, 'userdata') self.assertEqual(tkt.ip, '127.0.0.1') self.assertEqual(tkt.tokens, 'foo,bar') self.assertFalse(tkt.base64) self.assertEqual(tkt.ts, 9001)
def setUp(self): self.tkt = AuthTkt('secret', '123', 'userdata', '123.45.67.89', ('foo', 'bar'), ts=9001)
def construct(self, secret='secret', uid='123', **kwargs): if kwargs.get('tokens') is True: kwargs['tokens'] = ('foo', 'bar') kwargs.setdefault('data', 'userdata') kwargs.setdefault('ts', 9001) return AuthTkt(secret, uid, **kwargs)
def test_construction(self): tkt = AuthTkt('secret', '123') etkt = EncryptedAuthTkt(tkt, 'cryptosecret') self.assertEqual(etkt.auth_ticket, tkt)