Exemplo n.º 1
0
 def test_signing_and_validation_with_extensions(self):
     uri = '/content/jit.rpm'
     extensions = dict(remote_ip='10.2.3.4')
     url = URL('http://redhat.com{r}'.format(r=uri))
     url = url.sign(KEY, **extensions)
     resource = url.validate(PUB, **extensions)
     self.assertEqual(resource, uri)
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
 def test_signing_and_validation_with_extensions(self):
     uri = '/content/jit.rpm'
     extensions = dict(remote_ip='10.2.3.4')
     url = URL('http://redhat.com{r}'.format(r=uri))
     url = url.sign(KEY, **extensions)
     resource = url.validate(PUB, **extensions)
     self.assertEqual(resource, uri)
Exemplo n.º 4
0
    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))
Exemplo n.º 5
0
 def test_properties(self):
     url = URL('http://redhat.com:1234/path;p1;p2?age=10')
     self.assertEqual(url.scheme, 'http')
     self.assertEqual(url.netloc, 'redhat.com:1234')
     self.assertEqual(url.path, '/path')
     self.assertEqual(url.params, 'p1;p2')
     self.assertEqual(url.query, 'age=10')
     self.assertEqual(url.resource, '/path;p1;p2?age=10')
Exemplo n.º 6
0
 def test_validate_resources_not_matched(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('content', 'free/content'))
     self.assertRaises(NotValid, url.validate, PUB)
Exemplo n.º 7
0
 def test_signing_and_validation_with_params(self):
     uri = '/content/jit.rpm;hello=world'
     url = URL('http://redhat.com{r}'.format(r=uri))
     url = url.sign(KEY)
     resource = url.validate(PUB)
     self.assertEqual(resource, uri)
Exemplo n.º 8
0
 def test_policy_expired(self, time):
     time.side_effect = [1, 2]
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY, 1)
     self.assertRaises(PolicyExpired, url.validate, PUB)
Exemplo n.º 9
0
 def test_no_signature(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('signature=', 'age='))
     self.assertRaises(NotSigned, url.validate, PUB)
Exemplo n.º 10
0
 def test_basic_signing(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     print url
Exemplo n.º 11
0
 def test_signature_decoding(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('signature=', 'signature=XXX'))
     self.assertRaises(DecodingError, url.validate, PUB)
Exemplo n.º 12
0
 def test_no_signature(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('signature=', 'age='))
     self.assertRaises(NotSigned, url.validate, PUB)
Exemplo n.º 13
0
 def test_basic_signing(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     print url
Exemplo n.º 14
0
 def test_init(self, urlparse):
     s = 'http://host:port?age=10'
     url = URL(s)
     urlparse.assert_called_once_with(s)
     self.assertEqual(url.content, urlparse.return_value)
Exemplo n.º 15
0
 def test_validate_resources_not_matched(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('content', 'free/content'))
     self.assertRaises(NotValid, url.validate, PUB)
Exemplo n.º 16
0
 def test_policy_expired(self, time):
     time.side_effect = [1, 2]
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY, 1)
     self.assertRaises(PolicyExpired, url.validate, PUB)
Exemplo n.º 17
0
 def test_signing_and_validation_with_params(self):
     uri = '/content/jit.rpm;hello=world'
     url = URL('http://redhat.com{r}'.format(r=uri))
     url = url.sign(KEY)
     resource = url.validate(PUB)
     self.assertEqual(resource, uri)
Exemplo n.º 18
0
 def test_policy_altered(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('policy=', 'policy=1'))
     self.assertRaises(PolicyNotAuthenticated, url.validate, PUB)
Exemplo n.º 19
0
 def test_signature_decoding(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('signature=', 'signature=XXX'))
     self.assertRaises(DecodingError, url.validate, PUB)
Exemplo n.º 20
0
 def test_str(self):
     url = 'https://redhat.com:443/path;p1;p2?q1=1;q2=2'
     self.assertEqual(str(URL(url)), url)
Exemplo n.º 21
0
 def test_policy_altered(self):
     url = URL('http://redhat.com/content/jit.rpm')
     url = url.sign(KEY)
     content = str(url)
     url = SignedURL(content.replace('policy=', 'policy=1'))
     self.assertRaises(PolicyNotAuthenticated, url.validate, PUB)