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)
def setUp(self): self.hmacmiddleware = HmacMiddleware() self.factory = RequestFactory() self.hmac = Hmac()
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()
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
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()
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