summaryrefslogtreecommitdiff
path: root/keystoneclient/tests
diff options
context:
space:
mode:
Diffstat (limited to 'keystoneclient/tests')
-rw-r--r--keystoneclient/tests/auth/test_identity_common.py55
-rw-r--r--keystoneclient/tests/auth/test_identity_v2.py23
-rw-r--r--keystoneclient/tests/auth/test_identity_v3.py36
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)