From dbbad4fc545ede6002139fa31ebd8306cc6f6393 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Wed, 7 Dec 2016 14:54:03 +0000 Subject: [PATCH] tests: Replace use of CONF with monkey patching Per the docs, the 'nova-console' service is "a XenAPI-specific service that most recent VNC proxy architectures do not use." [1] This service provides a config option - 'console_driver' - which only has two valid values, one of which was a fake used in testing. There are better ways to stub out code during tests that by setting configuration options, namely through the use of monkey patching. Do this, paving the way for deprecation and eventual removal of this configuration option. [1] https://github.com/openstack/openstack-manuals/tree/4b1e8f1/doc\ /admin-guide/source/compute-remote-console-access.rst Change-Id: Ibfc957c40dafb1ecb35b8658ab92b922b1f39a1a --- nova/console/manager.py | 8 +++----- nova/tests/functional/api_sample_tests/test_consoles.py | 7 ++++++- nova/tests/unit/console/test_console.py | 6 +++++- .../fake.py => tests/unit/fake_xvp_console_proxy.py} | 0 4 files changed, 14 insertions(+), 7 deletions(-) rename nova/{console/fake.py => tests/unit/fake_xvp_console_proxy.py} (100%) diff --git a/nova/console/manager.py b/nova/console/manager.py index 984530c67b0d..a4436b1b28a3 100644 --- a/nova/console/manager.py +++ b/nova/console/manager.py @@ -17,10 +17,10 @@ from oslo_log import log as logging import oslo_messaging as messaging -from oslo_utils import importutils from nova.compute import rpcapi as compute_rpcapi import nova.conf +from nova.console import xvp from nova import exception from nova.i18n import _LI from nova import manager @@ -41,10 +41,8 @@ class ConsoleProxyManager(manager.Manager): target = messaging.Target(version='2.0') - def __init__(self, console_driver=None, *args, **kwargs): - if not console_driver: - console_driver = CONF.console_driver - self.driver = importutils.import_object(console_driver) + def __init__(self, *args, **kwargs): + self.driver = xvp.XVPConsoleProxy() super(ConsoleProxyManager, self).__init__(service_name='console', *args, **kwargs) self.driver.host = self.host diff --git a/nova/tests/functional/api_sample_tests/test_consoles.py b/nova/tests/functional/api_sample_tests/test_consoles.py index c479f9d0c703..7c6a81a461c3 100644 --- a/nova/tests/functional/api_sample_tests/test_consoles.py +++ b/nova/tests/functional/api_sample_tests/test_consoles.py @@ -13,8 +13,11 @@ # License for the specific language governing permissions and limitations # under the License. +import fixtures + from nova.console import manager as console_manager # noqa - only for cfg from nova.tests.functional.api_sample_tests import test_servers +from nova.tests.unit import fake_xvp_console_proxy class ConsolesSamplesJsonTest(test_servers.ServersSampleBase): @@ -24,7 +27,9 @@ class ConsolesSamplesJsonTest(test_servers.ServersSampleBase): super(ConsolesSamplesJsonTest, self).setUp() self.flags(console_public_hostname='fake') self.flags(console_host='fake') - self.flags(console_driver='nova.console.fake.FakeConsoleProxy') + self.useFixture(fixtures.MonkeyPatch( + 'nova.console.manager.xvp.XVPConsoleProxy', + fake_xvp_console_proxy.FakeConsoleProxy)) self.console = self.start_service('console', host='fake') def _create_consoles(self, server_uuid): diff --git a/nova/tests/unit/console/test_console.py b/nova/tests/unit/console/test_console.py index ff522153e571..e4bf1d5433c5 100644 --- a/nova/tests/unit/console/test_console.py +++ b/nova/tests/unit/console/test_console.py @@ -16,6 +16,7 @@ """Tests For Console proxy.""" +import fixtures import mock from nova.compute import rpcapi as compute_rpcapi @@ -28,6 +29,7 @@ from nova import exception from nova import objects from nova import test from nova.tests.unit import fake_instance +from nova.tests.unit import fake_xvp_console_proxy CONF = nova.conf.CONF @@ -36,7 +38,9 @@ class ConsoleTestCase(test.TestCase): """Test case for console proxy manager.""" def setUp(self): super(ConsoleTestCase, self).setUp() - self.flags(console_driver='nova.console.fake.FakeConsoleProxy') + self.useFixture(fixtures.MonkeyPatch( + 'nova.console.manager.xvp.XVPConsoleProxy', + fake_xvp_console_proxy.FakeConsoleProxy)) self.console = console_manager.ConsoleProxyManager() self.user_id = 'fake' self.project_id = 'fake' diff --git a/nova/console/fake.py b/nova/tests/unit/fake_xvp_console_proxy.py similarity index 100% rename from nova/console/fake.py rename to nova/tests/unit/fake_xvp_console_proxy.py