From 05bfe1fce8e79a299e5410b59d8058775bc7653c Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Mon, 15 Aug 2016 16:44:59 -0400 Subject: [PATCH] Handle successful response in console functional tests The console functional tests were written under the assumption of how the gate jobs work in our CI system, but with a local devstack you might have a different configuration. For example, we don't run the nova-novnc service in the gate but it's enabled by default in devstack, so functional console tests for vnc will fail in a local default devstack setup. This change fixes the console functional tests to handle the case that a valid response is returned and adds a check for how the response looks so we're at least validating something. Change-Id: I3505c9955d032301b34764f67466c467a79ed9fb Closes-Bug: #1613435 --- .../functional/v2/legacy/test_consoles.py | 20 +++++++++++-------- .../tests/functional/v2/test_consoles.py | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/novaclient/tests/functional/v2/legacy/test_consoles.py b/novaclient/tests/functional/v2/legacy/test_consoles.py index 5afec203e..5595ab144 100644 --- a/novaclient/tests/functional/v2/legacy/test_consoles.py +++ b/novaclient/tests/functional/v2/legacy/test_consoles.py @@ -21,28 +21,32 @@ class TestConsolesNovaClient(base.ClientTestBase): COMPUTE_API_VERSION = "2.1" - def _test_console_get(self, command): + def _test_console_get(self, command, expected_response_type): server = self._create_server() completed_command = command % server.id - self.assertRaises(exceptions.CommandFailed, - self.nova, completed_command) try: - self.nova(completed_command) + output = self.nova(completed_command) + # if we didn't fail, check that the expected response type is in + # the output + console_type = self._get_column_value_from_single_row_table( + output, 'Type') + self.assertEqual(expected_response_type, console_type, output) except exceptions.CommandFailed as cf: self.assertTrue('HTTP 400' in str(cf.stderr)) def _test_vnc_console_get(self): - self._test_console_get('get-vnc-console %s novnc') + self._test_console_get('get-vnc-console %s novnc', 'novnc') def _test_spice_console_get(self): - self._test_console_get('get-spice-console %s spice-html5') + self._test_console_get('get-spice-console %s spice-html5', + 'spice-html5') def _test_rdp_console_get(self): - self._test_console_get('get-rdp-console %s rdp-html5') + self._test_console_get('get-rdp-console %s rdp-html5', 'rdp-html5') def _test_serial_console_get(self): - self._test_console_get('get-serial-console %s') + self._test_console_get('get-serial-console %s', 'serial') def test_vnc_console_get(self): self._test_vnc_console_get() diff --git a/novaclient/tests/functional/v2/test_consoles.py b/novaclient/tests/functional/v2/test_consoles.py index 084277b0a..eaad45d49 100644 --- a/novaclient/tests/functional/v2/test_consoles.py +++ b/novaclient/tests/functional/v2/test_consoles.py @@ -38,4 +38,4 @@ class TestConsolesNovaClientV28(test_consoles.TestConsolesNovaClient): COMPUTE_API_VERSION = "2.8" def test_webmks_console_get(self): - self._test_console_get('get-mks-console %s ') + self._test_console_get('get-mks-console %s ', 'webmks')