def test_doesnt_use_signature_already_in_url_to_check_for_valid_signature_with_post_data(self): url_with_sig = "{url}?{signature_param}={signature}".format( url=self.url_two, signature_param=constants.SIGNATURE_PARAM_NAME, signature=self.signature_two, ) signature_valid = check_signature.check_signature(self.signature_two, self.TEST_PRIVATE_KEY, url_with_sig, self.url_post_data) self.assertEqual(True, signature_valid)
def test_doesnt_use_signature_already_in_url_to_check_for_valid_signature(self): url_with_sig = "{url}&{signature_param}={signature}".format( url=self.url_one, signature_param=constants.SIGNATURE_PARAM_NAME, signature=self.signature_one, ) signature_valid = check_signature.check_signature(self.signature_one, self.TEST_PRIVATE_KEY, url_with_sig, None) self.assertEqual(True, signature_valid)
def test_returns_false_when_signatures_dont_match(self): bad_signature = "ABCc0hS02rVC3016krevud1aW9B6Ls0Tp4_XcezuXYZ=" signature_valid = check_signature.check_signature(bad_signature, self.TEST_PRIVATE_KEY, self.url_one, None) self.assertEqual(False, signature_valid)
def test_returns_true_when_signatures_match_and_has_post_data(self): signature_valid = check_signature.check_signature(self.signature_two, self.TEST_PRIVATE_KEY, self.url_two, self.url_post_data) self.assertEqual(True, signature_valid)
def test_returns_true_when_private_key_built_from_base64_url_encoded_string(self): base64_private_key = base64.urlsafe_b64encode('Private Key') signature_valid = check_signature.check_signature(self.signature_one, base64_private_key, self.url_one, None) self.assertEqual(True, signature_valid)
def signature_was_valid(self): if self.client: return check_signature(self.signature, self.client.private_key, self.url_path, self.request_data)
def test_returns_false_when_signatures_dont_match(self): bad_signature = "ABCc0hS02rVC3016krevud1aW9B6Ls0Tp4_XcezuXYZ=" signature_valid = check_signature.check_signature( bad_signature, self.TEST_PRIVATE_KEY, self.url_one, None) self.assertEqual(False, signature_valid)
def test_returns_true_when_signatures_match_and_has_post_data(self): signature_valid = check_signature.check_signature( self.signature_two, self.TEST_PRIVATE_KEY, self.url_two, self.url_post_data) self.assertEqual(True, signature_valid)
def test_returns_true_when_private_key_built_from_base64_url_encoded_string( self): base64_private_key = base64.urlsafe_b64encode(b'Private Key') signature_valid = check_signature.check_signature( self.signature_one, base64_private_key, self.url_one, {}) self.assertEqual(True, signature_valid)
def unquote_base_url(self): url, query = self.url_path.split('?') return check_signature( self.signature, self.client.private_key, '{}?{}'.format(unquote(url), query), self.request_data )
def signature_was_valid(self): if self.client: result = check_signature(self.signature, self.client.private_key, self.url_path, self.request_data) return result or check_signature( self.signature, self.client.private_key, unquote(self.url_path), self.request_data ) or self.unquote_base_url