summaryrefslogtreecommitdiff
path: root/ceilometerclient/tests/unit/test_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'ceilometerclient/tests/unit/test_client.py')
-rw-r--r--ceilometerclient/tests/unit/test_client.py148
1 files changed, 56 insertions, 92 deletions
diff --git a/ceilometerclient/tests/unit/test_client.py b/ceilometerclient/tests/unit/test_client.py
index 90f0c3d..18335ba 100644
--- a/ceilometerclient/tests/unit/test_client.py
+++ b/ceilometerclient/tests/unit/test_client.py
@@ -12,7 +12,6 @@
import types
-from keystoneauth1 import exceptions as ka_exc
from keystoneclient.auth.identity import v2 as v2_auth
from keystoneclient.auth.identity import v3 as v3_auth
from keystoneclient import exceptions as ks_exc
@@ -44,14 +43,8 @@ class ClientTest(utils.BaseTestCase):
def create_client(env, api_version=2, endpoint=None, exclude=[]):
env = dict((k, v) for k, v in env.items()
if k not in exclude)
- if not env.get('auth_plugin'):
- with mock.patch('ceilometerclient.client.AuthPlugin.'
- 'redirect_to_aodh_endpoint') as redirect_aodh:
- redirect_aodh.side_effect = ka_exc.EndpointNotFound
- return client.get_client(api_version, **env)
- else:
- env['auth_plugin'].redirect_to_aodh_endpoint.side_effect = \
- ks_exc.EndpointNotFound
+ with mock.patch('ceilometerclient.v2.client.Client._get_alarm_client',
+ return_value=None):
return client.get_client(api_version, **env)
def test_client_v2_with_session(self):
@@ -113,7 +106,8 @@ class ClientTest(utils.BaseTestCase):
}
with mock.patch('ceilometerclient.client.AuthPlugin') as auth_plugin:
self.create_client(env, api_version=2, endpoint='http://no.where')
- auth_plugin.assert_called_with(**expected)
+ self.assertEqual(mock.call(**expected),
+ auth_plugin.mock_calls[0])
def test_v2_client_timeout_invalid_value(self):
env = FAKE_ENV.copy()
@@ -191,14 +185,8 @@ class ClientTest2(ClientTest):
def create_client(env, api_version=2, endpoint=None, exclude=[]):
env = dict((k, v) for k, v in env.items()
if k not in exclude)
- if not env.get('auth_plugin'):
- with mock.patch('ceilometerclient.client.AuthPlugin.'
- 'redirect_to_aodh_endpoint') as redirect_aodh:
- redirect_aodh.side_effect = ks_exc.EndpointNotFound
- return client.Client(api_version, endpoint, **env)
- else:
- env['auth_plugin'].redirect_to_aodh_endpoint.side_effect = \
- ks_exc.EndpointNotFound
+ with mock.patch('ceilometerclient.v2.client.Client._get_alarm_client',
+ return_value=None):
return client.Client(api_version, endpoint, **env)
@@ -207,12 +195,9 @@ class ClientTestWithAodh(ClientTest):
def create_client(env, api_version=2, endpoint=None, exclude=[]):
env = dict((k, v) for k, v in env.items()
if k not in exclude)
- if not env.get('auth_plugin'):
- with mock.patch('ceilometerclient.client.AuthPlugin.'
- 'redirect_to_aodh_endpoint'):
- return client.get_client(api_version, **env)
- else:
- env['auth_plugin'].redirect_to_aodh_endpoint = mock.MagicMock()
+ with mock.patch('ceilometerclient.openstack.common.apiclient.client.'
+ 'HTTPClient.client_request',
+ return_value=mock.MagicMock()):
return client.get_client(api_version, **env)
@mock.patch('keystoneclient.v2_0.client', fakes.FakeKeystone)
@@ -220,15 +205,18 @@ class ClientTestWithAodh(ClientTest):
env = FAKE_ENV.copy()
del env['auth_plugin']
c = self.create_client(env, api_version=2, endpoint='fake_endpoint')
- self.assertIsInstance(c.alarm_auth_plugin, client.AuthPlugin)
+ self.assertIsInstance(c.alarm_client.http_client.auth_plugin,
+ client.AuthPlugin)
def test_v2_client_insecure(self):
env = FAKE_ENV.copy()
env.pop('auth_plugin')
env['insecure'] = 'True'
client = self.create_client(env)
- self.assertIn('insecure', client.alarm_auth_plugin.opts)
- self.assertEqual('True', client.alarm_auth_plugin.opts['insecure'])
+ self.assertIn('insecure',
+ client.alarm_client.http_client.auth_plugin.opts)
+ self.assertEqual('True', (client.alarm_client.http_client.
+ auth_plugin.opts['insecure']))
class ClientAuthTest(utils.BaseTestCase):
@@ -237,8 +225,10 @@ class ClientAuthTest(utils.BaseTestCase):
def create_client(env, api_version=2, endpoint=None, exclude=[]):
env = dict((k, v) for k, v in env.items()
if k not in exclude)
-
- return client.get_client(api_version, **env)
+ with mock.patch('ceilometerclient.openstack.common.apiclient.client.'
+ 'HTTPClient.client_request',
+ return_value=mock.MagicMock()):
+ return client.get_client(api_version, **env)
@mock.patch('keystoneclient.discover.Discover')
@mock.patch('keystoneclient.session.Session')
@@ -254,8 +244,6 @@ class ClientAuthTest(utils.BaseTestCase):
client.auth_plugin._do_authenticate(mock.MagicMock())
self.assertEqual([mock.call(auth_url='http://no.where',
- session=mock_session_instance),
- mock.call(auth_url='http://no.where',
session=mock_session_instance)],
discover_mock.call_args_list)
self.assertIsInstance(mock_session_instance.auth, v3_auth.Password)
@@ -282,8 +270,6 @@ class ClientAuthTest(utils.BaseTestCase):
client.auth_plugin.opts.pop('token', None)
client.auth_plugin._do_authenticate(mock.MagicMock())
self.assertEqual([mock.call(auth_url='http://no.where',
- session=session_instance_mock),
- mock.call(auth_url='http://no.where',
session=session_instance_mock)],
discover.call_args_list)
@@ -296,6 +282,7 @@ class ClientAuthTest(utils.BaseTestCase):
discover):
env = FAKE_ENV.copy()
env.pop('auth_plugin', None)
+ env.pop('token', None)
session_instance_mock = mock.MagicMock()
session.return_value = session_instance_mock
@@ -304,7 +291,10 @@ class ClientAuthTest(utils.BaseTestCase):
discover_instance_mock.url_for.side_effect = (lambda v: v
if v == '2.0' else None)
discover.side_effect = ks_exc.DiscoveryFailure
- self.assertRaises(ks_exc.DiscoveryFailure, self.create_client, env)
+ client = self.create_client(env)
+ self.assertRaises(ks_exc.DiscoveryFailure,
+ client.auth_plugin._do_authenticate,
+ mock.Mock())
discover.side_effect = mock.MagicMock()
client = self.create_client(env)
discover.side_effect = ks_exc.DiscoveryFailure
@@ -316,68 +306,36 @@ class ClientAuthTest(utils.BaseTestCase):
self.assertEqual([mock.call(auth_url='http://no.where',
session=session_instance_mock),
mock.call(auth_url='http://no.where',
- session=session_instance_mock),
- mock.call(auth_url='http://no.where',
session=session_instance_mock)],
discover.call_args_list)
- @mock.patch('keystoneclient.discover.Discover')
- @mock.patch('keystoneclient.session.Session')
- def test_discover_auth_versions_raise_command_err(self, session, discover):
- env = FAKE_ENV.copy()
- env.pop('auth_plugin', None)
-
- session_instance_mock = mock.MagicMock()
- session.return_value = session_instance_mock
-
- discover.side_effect = exceptions.ClientException
-
- # the redirect_to_aodh_endpoint method will raise CommandError if
- # didn't specify keystone api version
- self.assertRaises(exc.CommandError, self.create_client, env)
- with mock.patch('ceilomet'
- 'erclient.client.AuthPlugin.'
- 'redirect_to_aodh_endpoint'):
- client = self.create_client(env)
- client.auth_plugin.opts.pop('token', None)
-
- self.assertRaises(exc.CommandError,
- client.auth_plugin._do_authenticate,
- mock.Mock())
-
@mock.patch('ceilometerclient.client._get_keystone_session')
- @mock.patch('ceilometerclient.client._get_token_auth_ks_session')
- def test_get_endpoint(self, token_session, session):
+ def test_get_endpoint(self, session):
env = FAKE_ENV.copy()
env.pop('auth_plugin', None)
env.pop('endpoint', None)
session_instance_mock = mock.MagicMock()
session.return_value = session_instance_mock
- token_ks_session_mock = mock.MagicMock()
- token_session.return_value = token_ks_session_mock
client = self.create_client(env)
- token_ks_session_mock.get_endpoint.assert_called_with(
- interface='publicURL', region_name=None, service_type='alarming')
- client.auth_plugin.opts.pop('token', None)
client.auth_plugin.opts.pop('endpoint')
- client.auth_plugin._do_authenticate(mock.MagicMock())
- session_instance_mock.get_endpoint.assert_called_with(
- region_name=None, interface='publicURL', service_type='metering')
+ client.auth_plugin.opts.pop('token', None)
+ alarm_auth_plugin = client.alarm_client.http_client.auth_plugin
+ alarm_auth_plugin.opts.pop('endpoint')
+ alarm_auth_plugin.opts.pop('token', None)
- @mock.patch('ceilometerclient.client._get_token_auth_ks_session')
- def test_get_aodh_endpoint(self, session):
- env = FAKE_ENV.copy()
- env.pop('auth_plugin', None)
- env.pop('endpoint', None)
+ self.assertNotEqual(client.auth_plugin, alarm_auth_plugin)
- session_instance_mock = mock.MagicMock()
- session.return_value = session_instance_mock
+ client.auth_plugin._do_authenticate(mock.MagicMock())
+ alarm_auth_plugin._do_authenticate(mock.MagicMock())
- self.create_client(env)
- session_instance_mock.get_endpoint.assert_called_with(
- region_name=None, interface='publicURL', service_type='alarming')
+ self.assertEqual([
+ mock.call(interface='publicURL', region_name=None,
+ service_type='metering'),
+ mock.call(interface='publicURL', region_name=None,
+ service_type='alarming'),
+ ], session_instance_mock.get_endpoint.mock_calls)
def test_http_client_with_session(self):
session = mock.Mock()
@@ -396,12 +354,11 @@ class ClientAuthTest(utils.BaseTestCase):
env.pop('endpoint', None)
env.pop('auth_url', None)
client = self.create_client(env, endpoint='fake_endpoint')
- self.assertEqual(client.alarm_auth_plugin.opts,
+ self.assertEqual(client.alarm_client.http_client.auth_plugin.opts,
client.auth_plugin.opts)
@mock.patch('ceilometerclient.client._get_keystone_session')
- @mock.patch('ceilometerclient.client._get_token_auth_ks_session')
- def test_get_different_endpoint_type(self, token_session, session):
+ def test_get_different_endpoint_type(self, session):
env = FAKE_ENV.copy()
env.pop('auth_plugin', None)
env.pop('endpoint', None)
@@ -409,21 +366,28 @@ class ClientAuthTest(utils.BaseTestCase):
session_instance_mock = mock.MagicMock()
session.return_value = session_instance_mock
- token_ks_session_mock = mock.MagicMock()
- token_session.return_value = token_ks_session_mock
client = self.create_client(env)
- token_ks_session_mock.get_endpoint.assert_called_with(
- interface='internal', region_name=None, service_type='alarming')
- client.auth_plugin.opts.pop('token', None)
client.auth_plugin.opts.pop('endpoint')
+ client.auth_plugin.opts.pop('token', None)
+ alarm_auth_plugin = client.alarm_client.http_client.auth_plugin
+ alarm_auth_plugin.opts.pop('endpoint')
+ alarm_auth_plugin.opts.pop('token', None)
+
+ self.assertNotEqual(client.auth_plugin, alarm_auth_plugin)
+
client.auth_plugin._do_authenticate(mock.MagicMock())
- session_instance_mock.get_endpoint.assert_called_with(
- region_name=None, interface='internal', service_type='metering')
+ alarm_auth_plugin._do_authenticate(mock.MagicMock())
+
+ self.assertEqual([
+ mock.call(interface='internal', region_name=None,
+ service_type='metering'),
+ mock.call(interface='internal', region_name=None,
+ service_type='alarming'),
+ ], session_instance_mock.get_endpoint.mock_calls)
@mock.patch('ceilometerclient.client._get_keystone_session')
- @mock.patch('ceilometerclient.client._get_token_auth_ks_session')
- def test_get_sufficient_options_missing(self, token_session, session):
+ def test_get_sufficient_options_missing(self, session):
env = FAKE_ENV.copy()
env.pop('auth_plugin', None)
env.pop('password', None)