diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-02-09 05:54:33 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-02-09 05:54:33 +0000 |
| commit | 4ee6e3302ae53c8858c0e48c27a46c292e771afb (patch) | |
| tree | d945a6e37daf9542ebf6c5e398fbe932fe072d4a /keystoneclient/tests | |
| parent | 14aa7fe27b0dcae5d5b4be6f9c6d5948c7704aae (diff) | |
| parent | cd552374ca8eaa315ec54fe8f586ec8c69a69c74 (diff) | |
| download | python-keystoneclient-1.1.0.tar.gz | |
Merge "Add get_headers interface to authentication plugins"1.1.0
Diffstat (limited to 'keystoneclient/tests')
| -rw-r--r-- | keystoneclient/tests/auth/test_identity_common.py | 55 | ||||
| -rw-r--r-- | keystoneclient/tests/auth/test_identity_v2.py | 23 | ||||
| -rw-r--r-- | keystoneclient/tests/auth/test_identity_v3.py | 36 |
3 files changed, 99 insertions, 15 deletions
diff --git a/keystoneclient/tests/auth/test_identity_common.py b/keystoneclient/tests/auth/test_identity_common.py index a7d9be6..d6942bc 100644 --- a/keystoneclient/tests/auth/test_identity_common.py +++ b/keystoneclient/tests/auth/test_identity_common.py @@ -221,7 +221,7 @@ class CommonIdentityTests(object): s = session.Session(auth=a) # trigger token fetching - s.get_token() + s.get_auth_headers() self.assertTrue(a.auth_ref) self.assertTrue(a.invalidate()) @@ -368,3 +368,56 @@ class CatalogHackTests(utils.TestCase): version=(3, 0)) self.assertEqual(self.V2_URL, endpoint) + + +class GenericPlugin(base.BaseAuthPlugin): + + BAD_TOKEN = uuid.uuid4().hex + + def __init__(self): + super(GenericPlugin, self).__init__() + + self.endpoint = 'http://keystone.host:5000' + + self.headers = {'headerA': 'valueA', + 'headerB': 'valueB'} + + def url(self, prefix): + return '%s/%s' % (self.endpoint, prefix) + + def get_token(self, session, **kwargs): + # NOTE(jamielennox): by specifying get_headers this should not be used + return self.BAD_TOKEN + + def get_headers(self, session, **kwargs): + return self.headers + + def get_endpoint(self, session, **kwargs): + return self.endpoint + + +class GenericAuthPluginTests(utils.TestCase): + + # filter doesn't matter to GenericPlugin, but we have to specify one + ENDPOINT_FILTER = {uuid.uuid4().hex: uuid.uuid4().hex} + + def setUp(self): + super(GenericAuthPluginTests, self).setUp() + self.auth = GenericPlugin() + self.session = session.Session(auth=self.auth) + + def test_setting_headers(self): + text = uuid.uuid4().hex + self.stub_url('GET', base_url=self.auth.url('prefix'), text=text) + + resp = self.session.get('prefix', endpoint_filter=self.ENDPOINT_FILTER) + + self.assertEqual(text, resp.text) + + for k, v in six.iteritems(self.auth.headers): + self.assertRequestHeaderEqual(k, v) + + self.assertIsNone(self.session.get_token()) + self.assertEqual(self.auth.headers, + self.session.get_auth_headers()) + self.assertNotIn('X-Auth-Token', self.requests.last_request.headers) diff --git a/keystoneclient/tests/auth/test_identity_v2.py b/keystoneclient/tests/auth/test_identity_v2.py index d832f14..345f0bd 100644 --- a/keystoneclient/tests/auth/test_identity_v2.py +++ b/keystoneclient/tests/auth/test_identity_v2.py @@ -102,7 +102,8 @@ class V2IdentityPlugin(utils.TestCase): password=self.TEST_PASS) self.assertIsNone(a.user_id) s = session.Session(a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'passwordCredentials': {'username': self.TEST_USER, 'password': self.TEST_PASS}}} @@ -117,7 +118,8 @@ class V2IdentityPlugin(utils.TestCase): password=self.TEST_PASS) self.assertIsNone(a.username) s = session.Session(a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'passwordCredentials': {'userId': self.TEST_USER, 'password': self.TEST_PASS}}} @@ -132,7 +134,8 @@ class V2IdentityPlugin(utils.TestCase): password=self.TEST_PASS, tenant_id=self.TEST_TENANT_ID) self.assertIsNone(a.user_id) s = session.Session(a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'passwordCredentials': {'username': self.TEST_USER, 'password': self.TEST_PASS}, @@ -146,7 +149,8 @@ class V2IdentityPlugin(utils.TestCase): password=self.TEST_PASS, tenant_id=self.TEST_TENANT_ID) self.assertIsNone(a.username) s = session.Session(a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'passwordCredentials': {'userId': self.TEST_USER, 'password': self.TEST_PASS}, @@ -158,7 +162,8 @@ class V2IdentityPlugin(utils.TestCase): self.stub_auth(json=self.TEST_RESPONSE_DICT) a = v2.Token(self.TEST_URL, 'foo') s = session.Session(a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'token': {'id': 'foo'}}} self.assertRequestBodyIs(json=req) @@ -172,7 +177,8 @@ class V2IdentityPlugin(utils.TestCase): a = v2.Password(self.TEST_URL, username=self.TEST_USER, password=self.TEST_PASS, trust_id='trust') s = session.Session(a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'passwordCredentials': {'username': self.TEST_USER, 'password': self.TEST_PASS}, @@ -266,8 +272,11 @@ class V2IdentityPlugin(utils.TestCase): s = session.Session(auth=a) self.assertEqual('token1', s.get_token()) + self.assertEqual({'X-Auth-Token': 'token1'}, s.get_auth_headers()) + a.invalidate() self.assertEqual('token2', s.get_token()) + self.assertEqual({'X-Auth-Token': 'token2'}, s.get_auth_headers()) def test_doesnt_log_password(self): self.stub_auth(json=self.TEST_RESPONSE_DICT) @@ -277,6 +286,8 @@ class V2IdentityPlugin(utils.TestCase): password=password) s = session.Session(auth=a) self.assertEqual(self.TEST_TOKEN, s.get_token()) + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) self.assertNotIn(password, self.logger.output) def test_password_with_no_user_id_or_name(self): diff --git a/keystoneclient/tests/auth/test_identity_v3.py b/keystoneclient/tests/auth/test_identity_v3.py index c0d4a1a..f1c7357 100644 --- a/keystoneclient/tests/auth/test_identity_v3.py +++ b/keystoneclient/tests/auth/test_identity_v3.py @@ -185,7 +185,8 @@ class V3IdentityPlugin(utils.TestCase): password=self.TEST_PASS) s = session.Session(auth=a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['password'], @@ -225,7 +226,9 @@ class V3IdentityPlugin(utils.TestCase): a = v3.Password(self.TEST_URL, username=self.TEST_USER, password=self.TEST_PASS, domain_id=self.TEST_DOMAIN_ID) s = session.Session(a) - s.get_token() + + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['password'], @@ -241,7 +244,9 @@ class V3IdentityPlugin(utils.TestCase): password=self.TEST_PASS, project_id=self.TEST_DOMAIN_ID) s = session.Session(a) - s.get_token() + + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['password'], @@ -256,7 +261,9 @@ class V3IdentityPlugin(utils.TestCase): self.stub_auth(json=self.TEST_RESPONSE_DICT) a = v3.Token(self.TEST_URL, self.TEST_TOKEN) s = session.Session(auth=a) - s.get_token() + + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['token'], @@ -279,7 +286,8 @@ class V3IdentityPlugin(utils.TestCase): a.auth_ref = access.AccessInfo.factory(body=d) s = session.Session(auth=a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) self.assertEqual(a.auth_ref['expires_at'], self.TEST_RESPONSE_DICT['token']['expires_at']) @@ -288,15 +296,20 @@ class V3IdentityPlugin(utils.TestCase): a = v3.Password(self.TEST_URL, username='username', password='password', project_id='project', domain_id='domain') + self.assertRaises(exceptions.AuthorizationFailure, a.get_token, None) + self.assertRaises(exceptions.AuthorizationFailure, + a.get_headers, None) def test_with_trust_id(self): self.stub_auth(json=self.TEST_RESPONSE_DICT) a = v3.Password(self.TEST_URL, username=self.TEST_USER, password=self.TEST_PASS, trust_id='trust') s = session.Session(a) - s.get_token() + + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['password'], @@ -312,7 +325,9 @@ class V3IdentityPlugin(utils.TestCase): t = v3.TokenMethod(token='foo') a = v3.Auth(self.TEST_URL, [p, t], trust_id='trust') s = session.Session(a) - s.get_token() + + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['password', 'token'], @@ -331,7 +346,8 @@ class V3IdentityPlugin(utils.TestCase): a = v3.Auth(self.TEST_URL, [p, t], trust_id='trust') s = session.Session(auth=a) - s.get_token() + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) req = {'auth': {'identity': {'methods': ['password', 'token'], @@ -438,8 +454,10 @@ class V3IdentityPlugin(utils.TestCase): s = session.Session(auth=a) self.assertEqual('token1', s.get_token()) + self.assertEqual({'X-Auth-Token': 'token1'}, s.get_auth_headers()) a.invalidate() self.assertEqual('token2', s.get_token()) + self.assertEqual({'X-Auth-Token': 'token2'}, s.get_auth_headers()) def test_doesnt_log_password(self): self.stub_auth(json=self.TEST_RESPONSE_DICT) @@ -449,6 +467,8 @@ class V3IdentityPlugin(utils.TestCase): password=password) s = session.Session(a) self.assertEqual(self.TEST_TOKEN, s.get_token()) + self.assertEqual({'X-Auth-Token': self.TEST_TOKEN}, + s.get_auth_headers()) self.assertNotIn(password, self.logger.output) |
