From 84e34304bbe0b700f7f89488480fc13f2c1b59de Mon Sep 17 00:00:00 2001 From: Omer Date: Wed, 18 Jan 2023 14:03:31 +0100 Subject: [PATCH] WIP Add a skipper for Octavia client if it is missing Change-Id: Ibf530c84ce74d8a122c1c6e35674d702327953a9 --- tobiko/openstack/octavia/_client.py | 1 + tobiko/tests/unit/openstack/octavia/test_client.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tobiko/openstack/octavia/_client.py b/tobiko/openstack/octavia/_client.py index 53e134980..53950c24b 100644 --- a/tobiko/openstack/octavia/_client.py +++ b/tobiko/openstack/octavia/_client.py @@ -51,6 +51,7 @@ class OctaviaClientManager(_client.OpenstackClientManager): CLIENTS = OctaviaClientManager() +@keystone.skip_if_missing_service(name='octavia') def octavia_client(obj: OctaviaClientType = None) -> octavia.OctaviaAPI: if obj is None: return get_octavia_client() diff --git a/tobiko/tests/unit/openstack/octavia/test_client.py b/tobiko/tests/unit/openstack/octavia/test_client.py index ee76e98fc..712afe2fa 100644 --- a/tobiko/tests/unit/openstack/octavia/test_client.py +++ b/tobiko/tests/unit/openstack/octavia/test_client.py @@ -16,6 +16,7 @@ from __future__ import absolute_import import inspect from keystoneclient.v3 import endpoints +import mock from octaviaclient.api.v2 import octavia as octaviaclient from tobiko.openstack import keystone @@ -87,20 +88,25 @@ class OctaviaClientTest(openstack.OpenstackTest): super(OctaviaClientTest, self).setUp() self.useFixture(KeystoneModulePatch()) + def _get_octavia_client(self, client_type): + with mock.patch('tobiko.openstack.keystone._services.has_service', + return_value=True): + return octavia.octavia_client(client_type) + def test_octavia_client_with_none(self): default_client = octavia.get_octavia_client() - client = octavia.octavia_client(None) + client = self._get_octavia_client(None) self.assertIsInstance(client, octaviaclient.OctaviaAPI) self.assertIs(default_client, client) def test_octavia_client_with_client(self): default_client = octavia.get_octavia_client() - client = octavia.octavia_client(default_client) + client = self._get_octavia_client(default_client) self.assertIsInstance(client, octaviaclient.OctaviaAPI) self.assertIs(default_client, client) def test_octavia_client_with_fixture(self): fixture = octavia.OctaviaClientFixture() - client = octavia.octavia_client(fixture) + client = self._get_octavia_client(fixture) self.assertIsInstance(client, octaviaclient.OctaviaAPI) self.assertIs(client, fixture.client)