diff options
Diffstat (limited to 'distixapi/authn_tests.py')
-rw-r--r-- | distixapi/authn_tests.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/distixapi/authn_tests.py b/distixapi/authn_tests.py index a32ccce..063b400 100644 --- a/distixapi/authn_tests.py +++ b/distixapi/authn_tests.py @@ -1,3 +1,4 @@ +import base64 import unittest import distixapi @@ -10,12 +11,33 @@ class GetCredentialsTests(unittest.TestCase): with self.assertRaises(distixapi.AuthenticationError): distixapi.get_credentials(request) + def test_raises_error_if_empty_Authentication_header(self): + request = DummyRequest() + request.add_header('Authorization', '') + with self.assertRaises(distixapi.AuthenticationError): + distixapi.get_credentials(request) + def test_raises_error_if_not_BasicAuth_header(self): request = DummyRequest() request.add_header('Authorization', 'Bearer token') with self.assertRaises(distixapi.AuthenticationError): distixapi.get_credentials(request) + def test_raises_error_if_no_BasicAuth_value(self): + request = DummyRequest() + request.add_header('Authorization', 'Basic') + with self.assertRaises(distixapi.AuthenticationError): + distixapi.get_credentials(request) + + def test_returns_username_password(self): + request = DummyRequest() + username = 'fooser' + password = 'secret' + value = base64.b64encode('{}:{}'.format(username, password)) + request.add_header('Authorization', 'Basic {}'.format(value)) + u, p = distixapi.get_credentials(request) + self.assertEqual(username, u) + self.assertEqual(password, p) class DummyRequest(object): |