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
This commit is contained in:
Stephen Finucane 2016-12-07 14:54:03 +00:00
parent 45f14c2018
commit dbbad4fc54
4 changed files with 14 additions and 7 deletions

View File

@ -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

View File

@ -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):

View File

@ -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'