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
This commit is contained in:
Matt Riedemann 2016-08-15 16:44:59 -04:00
parent 1adabce8bf
commit 05bfe1fce8
2 changed files with 13 additions and 9 deletions

View File

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

View File

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