diff options
Diffstat (limited to 'quantumclient/tests/unit/test_auth.py')
| -rw-r--r-- | quantumclient/tests/unit/test_auth.py | 57 |
1 files changed, 44 insertions, 13 deletions
diff --git a/quantumclient/tests/unit/test_auth.py b/quantumclient/tests/unit/test_auth.py index ba1aa0b..e8e64b3 100644 --- a/quantumclient/tests/unit/test_auth.py +++ b/quantumclient/tests/unit/test_auth.py @@ -17,7 +17,6 @@ import httplib2 import json -import unittest import uuid import mox @@ -25,7 +24,6 @@ from mox import ContainsKeyValue, IsA, StrContains import testtools from quantumclient.client import HTTPClient -from quantumclient.common import exceptions USERNAME = 'testuser' @@ -54,6 +52,17 @@ KS_TOKEN_RESULT = { } } +ENDPOINTS_RESULT = { + 'endpoints': [{ + 'type': 'network', + 'name': 'Quantum Service', + 'region': REGION, + 'adminURL': ENDPOINT_URL, + 'internalURL': ENDPOINT_URL, + 'publicURL': ENDPOINT_URL + }] +} + class CLITestAuthKeystone(testtools.TestCase): @@ -84,46 +93,68 @@ class CLITestAuthKeystone(testtools.TestCase): self.client.do_request('/resource', 'GET') self.assertEqual(self.client.endpoint_url, ENDPOINT_URL) self.assertEqual(self.client.auth_token, TOKEN) - self.assertEqual(self.client.token_retrieved, True) - def test_already_token_retrieved(self): + def test_refresh_token(self): self.mox.StubOutWithMock(self.client, "request") self.client.auth_token = TOKEN self.client.endpoint_url = ENDPOINT_URL - self.client.token_retrieved = True res200 = self.mox.CreateMock(httplib2.Response) res200.status = 200 + res401 = self.mox.CreateMock(httplib2.Response) + res401.status = 401 + # If a token is expired, quantum server retruns 401 + self.client.request(StrContains(ENDPOINT_URL + '/resource'), 'GET', + headers=ContainsKeyValue('X-Auth-Token', TOKEN)).\ + AndReturn((res401, '')) + self.client.request(AUTH_URL + '/tokens', 'POST', + body=IsA(str), headers=IsA(dict)).\ + AndReturn((res200, json.dumps(KS_TOKEN_RESULT))) self.client.request(StrContains(ENDPOINT_URL + '/resource'), 'GET', headers=ContainsKeyValue('X-Auth-Token', TOKEN)).\ AndReturn((res200, '')) self.mox.ReplayAll() + self.client.do_request('/resource', 'GET') + + def test_get_endpoint_url(self): + self.mox.StubOutWithMock(self.client, "request") + self.client.auth_token = TOKEN + + res200 = self.mox.CreateMock(httplib2.Response) + res200.status = 200 + + self.client.request(StrContains(AUTH_URL + + '/tokens/%s/endpoints' % TOKEN), 'GET', + headers=IsA(dict)). \ + AndReturn((res200, json.dumps(ENDPOINTS_RESULT))) + self.client.request(StrContains(ENDPOINT_URL + '/resource'), 'GET', + headers=ContainsKeyValue('X-Auth-Token', TOKEN)). \ + AndReturn((res200, '')) + self.mox.ReplayAll() self.client.do_request('/resource', 'GET') - def test_refresh_token(self): + def test_get_endpoint_url_failed(self): self.mox.StubOutWithMock(self.client, "request") self.client.auth_token = TOKEN - self.client.endpoint_url = ENDPOINT_URL - self.client.token_retrieved = True res200 = self.mox.CreateMock(httplib2.Response) res200.status = 200 res401 = self.mox.CreateMock(httplib2.Response) res401.status = 401 - # If a token is expired, quantum server retruns 401 - self.client.request(StrContains(ENDPOINT_URL + '/resource'), 'GET', - headers=ContainsKeyValue('X-Auth-Token', TOKEN)).\ + self.client.request(StrContains(AUTH_URL + + '/tokens/%s/endpoints' % TOKEN), 'GET', + headers=IsA(dict)). \ AndReturn((res401, '')) self.client.request(AUTH_URL + '/tokens', 'POST', - body=IsA(str), headers=IsA(dict)).\ + body=IsA(str), headers=IsA(dict)). \ AndReturn((res200, json.dumps(KS_TOKEN_RESULT))) self.client.request(StrContains(ENDPOINT_URL + '/resource'), 'GET', - headers=ContainsKeyValue('X-Auth-Token', TOKEN)).\ + headers=ContainsKeyValue('X-Auth-Token', TOKEN)). \ AndReturn((res200, '')) self.mox.ReplayAll() self.client.do_request('/resource', 'GET') |
