def test_sign(self, time, policy): time.return_value = 10 url = URL('http://redhat.com:1234/path;p1;p2?age=10') key = Mock() expiration = 10 signature = 's1234[' encoded_policy = 'p1234[' _policy = Mock() _policy.sign.return_value = (encoded_policy, signature) policy.return_value = _policy extensions = dict(remote_ip='10.1.1.1') # test signed = url.sign(key, expiration, **extensions) # validation query = dict(Query.decode(url.query)) query[URL.POLICY] = encoded_policy query[URL.SIGNATURE] = signature policy.assert_called_once_with(url.resource, expiration + time.return_value) self.assertEqual(signed.scheme, url.scheme) self.assertEqual(signed.netloc, url.netloc) self.assertEqual(signed.params, url.params) self.assertEqual(signed.path, url.path) self.assertEqual(signed.query, url.query) self.assertEqual(signed.bundle, (encoded_policy, signature))
def test_decode_with_padding(self): encoded = 'policy=SuchPad==;signature=MuchZero==' decoded = Query.decode(encoded) self.assertEqual(decoded, { 'policy': 'SuchPad==', 'signature': 'MuchZero==' })
def test_sign(self, time, policy): time.return_value = 10 url = URL('http://redhat.com:1234/path;p1;p2?age=10') key = Mock() expiration = 10 signature = 's1234[' encoded_policy = 'p1234[' _policy = Mock() _policy.sign.return_value = (encoded_policy, signature) policy.return_value = _policy extensions = dict(remote_ip='10.1.1.1') # test signed = url.sign(key, expiration, **extensions) # validation query = dict(Query.decode(url.query)) query[URL.POLICY] = encoded_policy query[URL.SIGNATURE] = signature policy.assert_called_once_with(url.resource, expiration + time.return_value) self.assertEqual(signed.scheme, url.scheme) self.assertEqual(signed.netloc, url.netloc) self.assertEqual(signed.params, url.params) self.assertEqual(signed.path, url.path) self.assertEqual(signed.query, url.query) self.assertEqual(signed.bundle, (encoded_policy, signature))
def test_decode(self): encoded = ';name=john;age=12;' decoded = Query.decode(encoded) self.assertEqual(decoded, {'name': 'john', 'age': '12'})
def test_decode(self): encoded = ';name=john;age=12;' decoded = Query.decode(encoded) self.assertEqual(decoded, {'name': 'john', 'age': '12'})