From 25070cd88eccf10eb66ecd42515d9aa54d940eda Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Thu, 19 Nov 2015 16:29:53 +0100 Subject: [PATCH] Remove double API requests When a keystone session object is used API call are done twice. This change fixes that. Change-Id: I79815520b996bce954fe531193f1a0229ef30060 --- ceilometerclient/client.py | 1 - ceilometerclient/tests/unit/test_client.py | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ceilometerclient/client.py b/ceilometerclient/client.py index 8254c488..82fa9671 100644 --- a/ceilometerclient/client.py +++ b/ceilometerclient/client.py @@ -508,7 +508,6 @@ class SessionClient(adapter.LegacyJsonAdapter): super(SessionClient, self).__init__(*args, **kwargs) def request(self, url, method, **kwargs): - self.session.request(url, method) kwargs.setdefault('headers', kwargs.get('headers', {})) # NOTE(sileht): The standard call raises errors from # keystoneauth, where we need to raise the gnocchiclient errors. diff --git a/ceilometerclient/tests/unit/test_client.py b/ceilometerclient/tests/unit/test_client.py index 99fa2129..90f0c3d2 100644 --- a/ceilometerclient/tests/unit/test_client.py +++ b/ceilometerclient/tests/unit/test_client.py @@ -379,6 +379,17 @@ class ClientAuthTest(utils.BaseTestCase): session_instance_mock.get_endpoint.assert_called_with( region_name=None, interface='publicURL', service_type='alarming') + def test_http_client_with_session(self): + session = mock.Mock() + session.request.return_value = mock.Mock(status_code=404, + text=b'') + + env = {"session": session, + "service_type": "metering", + "user_agent": "python-ceilometerclient"} + c = client.SessionClient(**env) + self.assertRaises(exc.HTTPException, c.get, "/") + def test_get_aodh_endpoint_without_auth_url(self): env = FAKE_ENV.copy() env.pop('auth_plugin', None)