Exemple #1
0
class MultipleHmacMiddlewareTestCase(TestCase):

    def setUp(self):
        self.hmacmiddleware = HmacMiddleware()
        self.factory = RequestFactory()
        self.hmac = Hmac()

    def test_raise_exception_when_signature_is_not_send(self):
        request = self.factory.get('/example',)
        with self.assertRaises(PermissionDenied):
            self.hmacmiddleware.process_request(request)

    def test_should_be_ok_when_correct_hmac_is_send(self):
        signature = self.hmac.make_hmac_for('serviceA')
        request = self.factory.get('/example', **{'HTTP_' + self.hmac.header.upper(): signature})
        self.hmacmiddleware.process_request(request)

    def test_raise_exception_when_signature_changed(self):
        signature = self.hmac.make_hmac_for('serviceA', 'some data')
        request = self.factory.get('/example', **{'HTTP_' + self.hmac.header.upper(): signature})

        with self.assertRaises(PermissionDenied):
            self.hmacmiddleware.process_request(request)

    def test_raise_exception_when_invalid_hmac_is_send(self):
        request = self.factory.get('/example', **{'HTTP_' + self.hmac.header.upper(): '00'})

        with self.assertRaises(PermissionDenied):
            self.hmacmiddleware.process_request(request)
Exemple #2
0
 def setUp(self):
     self.hmacmiddleware = HmacMiddleware()
     self.factory = RequestFactory()
     self.hmac = Hmac()
Exemple #3
0
 def setUp(self):
     self.hmac = Hmac()
     self.hmac.hmac_keys["serviceB"] = "secret key for service b"
     self.factory = RequestFactory()
     self.header = "HTTP_" + self.hmac.header.upper()
Exemple #4
0
class HmacTestCase(TestCase):
    def setUp(self):
        self.hmac = Hmac()
        self.hmac.hmac_keys["serviceB"] = "secret key for service b"
        self.factory = RequestFactory()
        self.header = "HTTP_" + self.hmac.header.upper()

    def test_signature_is_not_empty(self):
        assert self.hmac.make_hmac()

    def test_signature_is_different_for_different_data(self):
        assert self.hmac.make_hmac("a") != self.hmac.make_hmac("b")

    def test_custom_secret_key(self):
        assert self.hmac.make_hmac(key="a") == self.hmac.make_hmac(key="a")
        assert self.hmac.make_hmac(key="a") != self.hmac.make_hmac(key="b")

    def test_valid_multiple_signatures_should_pass(self):
        signature = self.hmac.make_hmac_for("serviceA")
        request = self.factory.get("/example", **{self.header: signature})
        assert self.hmac.validate_signature(request)

    def test_invalid_multiple_signatures_should_raice_exception(self):
        signature = self.hmac.make_hmac_for("serviceA", "some data")
        request = self.factory.get("/example", **{self.header: signature})
        with self.assertRaises(InvalidSignature):
            self.hmac.validate_signature(request)

    def test_unknown_key_name_for_multiple_signatures_should_raice_exception(self):
        with self.assertRaises(UnknownKeyName):
            self.hmac.make_hmac_for("unknown")

    def test_valid_signature_for_services_are_restricted_view(self):
        signature = self.hmac.make_hmac_for("serviceB")
        request = self.factory.get("/example", **{self.header: signature})
        with self.assertRaises(InvalidSignature):
            self.hmac.validate_signature(request, only=["serviceA"])

    def test_valid_signature_for_resticted_view(self):
        signature = self.hmac.make_hmac()
        request = self.factory.get("/example", **{self.header: signature})
        with self.assertRaises(InvalidSignature):
            self.hmac.validate_signature(request, only=["serviceA"])

    def test_generate_signature_for_unicode_key(self):
        uncode = self.hmac._hmac_factory("", key=u"unicode").digest()
        sr = self.hmac._hmac_factory("", key="unicode").digest()
        assert sr == uncode
Exemple #5
0
 def setUp(self):
     self.hmac = Hmac()
     self.hmac.hmac_keys['serviceB'] = 'secret key for service b'
     self.factory = RequestFactory()
     self.header = 'HTTP_' + self.hmac.header.upper()
Exemple #6
0
class HmacTestCase(TestCase):

    def setUp(self):
        self.hmac = Hmac()
        self.hmac.hmac_keys['serviceB'] = 'secret key for service b'
        self.factory = RequestFactory()
        self.header = 'HTTP_' + self.hmac.header.upper()

    def test_signature_is_not_empty(self):
        assert self.hmac.make_hmac()

    def test_signature_is_different_for_different_data(self):
        assert self.hmac.make_hmac('a') != self.hmac.make_hmac('b')

    def test_custom_secret_key(self):
        assert self.hmac.make_hmac(key='a') == self.hmac.make_hmac(key='a')
        assert self.hmac.make_hmac(key='a') != self.hmac.make_hmac(key='b')

    def test_valid_multiple_signatures_should_pass(self):
        signature = self.hmac.make_hmac_for('serviceA')
        request = self.factory.get('/example', **{self.header: signature})
        assert self.hmac.validate_signature(request)

    def test_invalid_multiple_signatures_should_raice_exception(self):
        signature = self.hmac.make_hmac_for('serviceA', 'some data')
        request = self.factory.get('/example', **{self.header: signature})
        with self.assertRaises(InvalidSignature):
            self.hmac.validate_signature(request)

    def test_unknown_key_name_for_multiple_signatures_should_raice_exception(self):
        with self.assertRaises(UnknownKeyName):
            self.hmac.make_hmac_for('unknown')

    def test_valid_signature_for_services_are_restricted_view(self):
        signature = self.hmac.make_hmac_for('serviceB')
        request = self.factory.get('/example', **{self.header: signature})
        with self.assertRaises(InvalidSignature):
            self.hmac.validate_signature(
                request,
                only=['serviceA']
            )

    def test_valid_signature_for_resticted_view(self):
        signature = self.hmac.make_hmac()
        request = self.factory.get('/example', **{self.header: signature})
        with self.assertRaises(InvalidSignature):
            self.hmac.validate_signature(
                request,
                only=['serviceA']
            )

    def test_generate_signature_for_unicode_key(self):
        uncode = self.hmac._hmac_factory('', key=u'unicode').digest()
        sr = self.hmac._hmac_factory('', key='unicode').digest()
        assert sr == uncode