summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorRichard Theis <rtheis@us.ibm.com>2015-12-02 14:43:01 -0600
committerRichard Theis <rtheis@us.ibm.com>2016-01-04 13:49:49 -0600
commit57dac0bc3add71d6c491e2cecc60ef756b75ac32 (patch)
tree5d9194944724b4ff8448649180c5ac4b7ed8e020 /openstackclient/tests
parent74a0b2a1901f8ba31ce9faee7ab18a48c6e558f9 (diff)
downloadpython-openstackclient-57dac0bc3add71d6c491e2cecc60ef756b75ac32.tar.gz
Refactor network endpoint enablement checking
Move the network endpoint enablement checking from the 'server create' command to the common client manager. This allows future network commands to use either nova or neutron networking based on the cloud environment. This patch set also includes related unit test enhancements to the common client manager to trigger authentication on the tests. Change-Id: Ia37e81d4fb05a1e2fceb3e5d367bda769ab8e64b Related-Bug: #1519511 Related-to: blueprint neutron-client
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/common/test_clientmanager.py33
-rw-r--r--openstackclient/tests/fakes.py14
2 files changed, 46 insertions, 1 deletions
diff --git a/openstackclient/tests/common/test_clientmanager.py b/openstackclient/tests/common/test_clientmanager.py
index 29cc59ed..523f79a3 100644
--- a/openstackclient/tests/common/test_clientmanager.py
+++ b/openstackclient/tests/common/test_clientmanager.py
@@ -77,6 +77,9 @@ class TestClientManager(utils.TestCase):
self.requests = self.useFixture(fixture.Fixture())
# fake v2password token retrieval
self.stub_auth(json=fakes.TEST_RESPONSE_DICT)
+ # fake token and token_endpoint retrieval
+ self.stub_auth(json=fakes.TEST_RESPONSE_DICT,
+ url='/'.join([fakes.AUTH_URL, 'v2.0/tokens']))
# fake v3password token retrieval
self.stub_auth(json=fakes.TEST_RESPONSE_DICT_V3,
url='/'.join([fakes.AUTH_URL, 'auth/tokens']))
@@ -99,6 +102,7 @@ class TestClientManager(utils.TestCase):
verify=True
)
client_manager.setup_auth()
+ client_manager.auth_ref
self.assertEqual(
fakes.AUTH_URL,
@@ -114,6 +118,7 @@ class TestClientManager(utils.TestCase):
)
self.assertFalse(client_manager._insecure)
self.assertTrue(client_manager._verify)
+ self.assertTrue(client_manager.is_network_endpoint_enabled())
def test_client_manager_token(self):
@@ -131,6 +136,7 @@ class TestClientManager(utils.TestCase):
verify=True
)
client_manager.setup_auth()
+ client_manager.auth_ref
self.assertEqual(
fakes.AUTH_URL,
@@ -150,6 +156,7 @@ class TestClientManager(utils.TestCase):
)
self.assertFalse(client_manager._insecure)
self.assertTrue(client_manager._verify)
+ self.assertTrue(client_manager.is_network_endpoint_enabled())
def test_client_manager_password(self):
@@ -166,6 +173,7 @@ class TestClientManager(utils.TestCase):
verify=False,
)
client_manager.setup_auth()
+ client_manager.auth_ref
self.assertEqual(
fakes.AUTH_URL,
@@ -195,6 +203,28 @@ class TestClientManager(utils.TestCase):
dir(SERVICE_CATALOG),
dir(client_manager.auth_ref.service_catalog),
)
+ self.assertTrue(client_manager.is_network_endpoint_enabled())
+
+ def test_client_manager_network_endpoint_disabled(self):
+
+ client_manager = clientmanager.ClientManager(
+ cli_options=FakeOptions(
+ auth=dict(
+ auth_url=fakes.AUTH_URL,
+ username=fakes.USERNAME,
+ password=fakes.PASSWORD,
+ project_name=fakes.PROJECT_NAME,
+ ),
+ auth_type='v3password',
+ ),
+ api_version={"identity": "3"},
+ verify=False,
+ )
+ client_manager.setup_auth()
+ client_manager.auth_ref
+
+ # v3 fake doesn't have network endpoint.
+ self.assertFalse(client_manager.is_network_endpoint_enabled())
def stub_auth(self, json=None, url=None, verb=None, **kwargs):
subject_token = fakes.AUTH_TOKEN
@@ -229,10 +259,12 @@ class TestClientManager(utils.TestCase):
verify='cafile',
)
client_manager.setup_auth()
+ client_manager.auth_ref
self.assertFalse(client_manager._insecure)
self.assertTrue(client_manager._verify)
self.assertEqual('cafile', client_manager._cacert)
+ self.assertTrue(client_manager.is_network_endpoint_enabled())
def _select_auth_plugin(self, auth_params, api_version, auth_plugin_name):
auth_params['auth_type'] = auth_plugin_name
@@ -243,6 +275,7 @@ class TestClientManager(utils.TestCase):
verify=True
)
client_manager.setup_auth()
+ client_manager.auth_ref
self.assertEqual(
auth_plugin_name,
diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py
index 9f4dcc50..718dff69 100644
--- a/openstackclient/tests/fakes.py
+++ b/openstackclient/tests/fakes.py
@@ -34,7 +34,15 @@ VERSION = "3"
TEST_RESPONSE_DICT = fixture.V2Token(token_id=AUTH_TOKEN,
user_name=USERNAME)
_s = TEST_RESPONSE_DICT.add_service('identity', name='keystone')
-_s.add_endpoint(AUTH_URL + '/v2.0')
+_s.add_endpoint(AUTH_URL + ':5000/v2.0')
+_s = TEST_RESPONSE_DICT.add_service('network', name='neutron')
+_s.add_endpoint(AUTH_URL + ':9696')
+_s = TEST_RESPONSE_DICT.add_service('compute', name='nova')
+_s.add_endpoint(AUTH_URL + ':8774/v2')
+_s = TEST_RESPONSE_DICT.add_service('image', name='glance')
+_s.add_endpoint(AUTH_URL + ':9292')
+_s = TEST_RESPONSE_DICT.add_service('object', name='swift')
+_s.add_endpoint(AUTH_URL + ':8080/v1')
TEST_RESPONSE_DICT_V3 = fixture.V3Token(user_name=USERNAME)
TEST_RESPONSE_DICT_V3.set_project_scope()
@@ -103,6 +111,7 @@ class FakeClientManager(object):
self.session = None
self.auth_ref = None
self.auth_plugin_name = None
+ self.network_endpoint_enabled = True
def get_configuration(self):
return {
@@ -115,6 +124,9 @@ class FakeClientManager(object):
'identity_api_version': VERSION,
}
+ def is_network_endpoint_enabled(self):
+ return self.network_endpoint_enabled
+
class FakeModule(object):
def __init__(self, name, version):