summaryrefslogtreecommitdiff
path: root/quantumclient/tests/unit/test_auth.py
diff options
context:
space:
mode:
Diffstat (limited to 'quantumclient/tests/unit/test_auth.py')
-rw-r--r--quantumclient/tests/unit/test_auth.py57
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')