Merge "Add tests for node list and show with specific fields"

This commit is contained in:
Jenkins 2017-03-21 19:59:36 +00:00 committed by Gerrit Code Review
commit 0404b5565e
1 changed files with 137 additions and 0 deletions

View File

@ -0,0 +1,137 @@
# Copyright (c) 2017 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import six
from tempest.lib import exceptions
from ironicclient.tests.functional.osc.v1 import base
class TestNodeListFields(base.TestCase):
"""Functional tests for "baremetal node list" with --fields."""
def setUp(self):
super(TestNodeListFields, self).setUp()
self.node = self.node_create()
def _get_table_headers(self, raw_output):
table = self.parser.table(raw_output)
return table['headers']
def test_list_default_fields(self):
"""Test presence of default list table headers."""
headers = ['UUID', 'Name', 'Instance UUID',
'Power State', 'Provisioning State', 'Maintenance']
nodes_list = self.openstack('baremetal node list')
nodes_list_headers = self._get_table_headers(nodes_list)
self.assertEqual(set(headers), set(nodes_list_headers))
def test_list_minimal_fields(self):
headers = ['Instance UUID', 'Name', 'UUID']
fields = ['instance_uuid', 'name', 'uuid']
node_list = self.openstack(
'baremetal node list --fields {}'
.format(' '.join(fields)))
nodes_list_headers = self._get_table_headers(node_list)
self.assertEqual(headers, nodes_list_headers)
def test_list_no_fields(self):
command = 'baremetal node list --fields'
ex_text = 'expected at least one argument'
six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text,
self.openstack, command)
def test_list_wrong_field(self):
command = 'baremetal node list --fields ABC'
ex_text = 'invalid choice'
six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text,
self.openstack, command)
class TestNodeShowFields(base.TestCase):
"""Functional tests for "baremetal node show" with --fields."""
def setUp(self):
super(TestNodeShowFields, self).setUp()
self.node = self.node_create()
self.api_version = '--os-baremetal-api-version 1.20'
def _get_table_rows(self, raw_output):
table = self.parser.table(raw_output)
rows = []
for row in table['values']:
rows.append(row[0])
return rows
def test_show_default_fields(self):
rows = ['console_enabled',
'clean_step',
'created_at',
'driver',
'driver_info',
'driver_internal_info',
'extra',
'inspection_finished_at',
'inspection_started_at',
'instance_info',
'instance_uuid',
'last_error',
'maintenance',
'maintenance_reason',
'name',
'power_state',
'properties',
'provision_state',
'provision_updated_at',
'reservation',
'target_power_state',
'target_provision_state',
'updated_at',
'uuid']
node_show = self.openstack('baremetal node show {}'
.format(self.node['uuid']))
nodes_show_rows = self._get_table_rows(node_show)
self.assertTrue(set(rows).issubset(set(nodes_show_rows)))
def test_show_minimal_fields(self):
rows = [
'instance_uuid',
'name',
'uuid']
node_show = self.openstack(
'baremetal node show {} --fields {} {}'
.format(self.node['uuid'], ' '.join(rows), self.api_version))
nodes_show_rows = self._get_table_rows(node_show)
self.assertEqual(set(rows), set(nodes_show_rows))
def test_show_no_fields(self):
command = 'baremetal node show {} --fields {}'.format(
self.node['uuid'], self.api_version)
ex_text = 'expected at least one argument'
six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text,
self.openstack, command)
def test_show_wrong_field(self):
command = 'baremetal node show {} --fields ABC {}'.format(
self.node['uuid'], self.api_version)
ex_text = 'invalid choice'
six.assertRaisesRegex(self, exceptions.CommandFailed, ex_text,
self.openstack, command)