compute: Migrate tests for ShowServer to SDK objects
This is a little more realistic. We fix a minor bug along the way and start ignoring some newly added create-only fields. Change-Id: I93eae610e16e2a3a859f684b889546ace3afa683 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
518420abe4
commit
aa5eb881e5
openstackclient
@ -193,9 +193,11 @@ def _prep_server_detail(compute_client, image_client, server, refresh=True):
|
||||
'public_v6',
|
||||
# create-only columns
|
||||
'block_device_mapping',
|
||||
'host',
|
||||
'image_id',
|
||||
'max_count',
|
||||
'min_count',
|
||||
'personality',
|
||||
'scheduler_hints',
|
||||
# aliases
|
||||
'volumes',
|
||||
@ -283,7 +285,9 @@ def _prep_server_detail(compute_client, image_client, server, refresh=True):
|
||||
)
|
||||
|
||||
if 'tags' in info:
|
||||
info.update({'tags': format_columns.ListColumn(info.pop('tags'))})
|
||||
info.update(
|
||||
{'tags': format_columns.ListColumn(info.pop('tags') or [])}
|
||||
)
|
||||
|
||||
# Map 'networks' to 'addresses', if present. Note that the 'networks' key
|
||||
# is used for create responses, otherwise it's 'addresses'. We know it'll
|
||||
|
@ -8222,12 +8222,10 @@ class TestServerShow(TestServer):
|
||||
self.compute_sdk_client.get_server_diagnostics.return_value = {
|
||||
'test': 'test'
|
||||
}
|
||||
server_method = {
|
||||
'fetch_topology': self.topology,
|
||||
}
|
||||
self.server = compute_fakes.create_one_server(
|
||||
attrs=server_info, methods=server_method
|
||||
self.server = compute_fakes.create_one_sdk_server(
|
||||
attrs=server_info,
|
||||
)
|
||||
self.server.fetch_topology = mock.MagicMock(return_value=self.topology)
|
||||
|
||||
# This is the return value for utils.find_resource()
|
||||
self.compute_sdk_client.get_server.return_value = self.server
|
||||
@ -8238,28 +8236,101 @@ class TestServerShow(TestServer):
|
||||
self.cmd = server.ShowServer(self.app, None)
|
||||
|
||||
self.columns = (
|
||||
'OS-DCF:diskConfig',
|
||||
'OS-EXT-AZ:availability_zone',
|
||||
'OS-EXT-SRV-ATTR:host',
|
||||
'OS-EXT-SRV-ATTR:hostname',
|
||||
'OS-EXT-SRV-ATTR:hypervisor_hostname',
|
||||
'OS-EXT-SRV-ATTR:instance_name',
|
||||
'OS-EXT-SRV-ATTR:kernel_id',
|
||||
'OS-EXT-SRV-ATTR:launch_index',
|
||||
'OS-EXT-SRV-ATTR:ramdisk_id',
|
||||
'OS-EXT-SRV-ATTR:reservation_id',
|
||||
'OS-EXT-SRV-ATTR:root_device_name',
|
||||
'OS-EXT-SRV-ATTR:user_data',
|
||||
'OS-EXT-STS:power_state',
|
||||
'OS-EXT-STS:task_state',
|
||||
'OS-EXT-STS:vm_state',
|
||||
'OS-SRV-USG:launched_at',
|
||||
'OS-SRV-USG:terminated_at',
|
||||
'accessIPv4',
|
||||
'accessIPv6',
|
||||
'addresses',
|
||||
'config_drive',
|
||||
'created',
|
||||
'description',
|
||||
'flavor',
|
||||
'hostId',
|
||||
'host_status',
|
||||
'id',
|
||||
'image',
|
||||
'key_name',
|
||||
'locked',
|
||||
'locked_reason',
|
||||
'name',
|
||||
'pinned_availability_zone',
|
||||
'progress',
|
||||
'project_id',
|
||||
'properties',
|
||||
'server_groups',
|
||||
'status',
|
||||
'tags',
|
||||
'trusted_image_certificates',
|
||||
'updated',
|
||||
'user_id',
|
||||
'volumes_attached',
|
||||
)
|
||||
|
||||
self.data = (
|
||||
None, # OS-DCF:diskConfig
|
||||
None, # OS-EXT-AZ:availability_zone
|
||||
None, # OS-EXT-SRV-ATTR:host
|
||||
None, # OS-EXT-SRV-ATTR:hostname
|
||||
None, # OS-EXT-SRV-ATTR:hypervisor_hostname
|
||||
None, # OS-EXT-SRV-ATTR:instance_name
|
||||
None, # OS-EXT-SRV-ATTR:kernel_id
|
||||
None, # OS-EXT-SRV-ATTR:launch_index
|
||||
None, # OS-EXT-SRV-ATTR:ramdisk_id
|
||||
None, # OS-EXT-SRV-ATTR:reservation_id
|
||||
None, # OS-EXT-SRV-ATTR:root_device_name
|
||||
None, # OS-EXT-SRV-ATTR:user_data
|
||||
server.PowerStateColumn(
|
||||
getattr(self.server, 'OS-EXT-STS:power_state')
|
||||
),
|
||||
self.flavor.name + " (" + self.flavor.id + ")",
|
||||
self.server.id,
|
||||
self.image.name + " (" + self.image.id + ")",
|
||||
self.server.power_state
|
||||
), # OS-EXT-STS:power_state # noqa: E501
|
||||
None, # OS-EXT-STS:task_state
|
||||
None, # OS-EXT-STS:vm_state
|
||||
None, # OS-SRV-USG:launched_at
|
||||
None, # OS-SRV-USG:terminated_at
|
||||
None, # accessIPv4
|
||||
None, # accessIPv6
|
||||
server.AddressesColumn(
|
||||
{'public': ['10.20.30.40', '2001:db8::f']}
|
||||
), # addresses
|
||||
None, # config_drive
|
||||
None, # created
|
||||
None, # description
|
||||
self.flavor.name + " (" + self.flavor.id + ")", # flavor
|
||||
None, # hostId
|
||||
None, # host_status
|
||||
self.server.id, # id
|
||||
self.image.name + " (" + self.image.id + ")", # image
|
||||
None, # key_name
|
||||
None, # locked
|
||||
None, # locked_reason
|
||||
self.server.name,
|
||||
server.AddressesColumn({'public': ['10.20.30.40', '2001:db8::f']}),
|
||||
'tenant-id-xxx',
|
||||
format_columns.DictColumn({}),
|
||||
None, # pinned_availability_zone
|
||||
None, # progress
|
||||
'tenant-id-xxx', # project_id
|
||||
format_columns.DictColumn({}), # properties
|
||||
None, # server_groups
|
||||
None, # status
|
||||
format_columns.ListColumn([]), # tags
|
||||
None, # trusted_image_certificates
|
||||
None, # updated
|
||||
None, # user_id
|
||||
format_columns.ListDictColumn([]), # volumes_attached
|
||||
)
|
||||
self.assertEqual(len(self.columns), len(self.data))
|
||||
|
||||
def test_show_no_options(self):
|
||||
arglist = []
|
||||
@ -8286,8 +8357,8 @@ class TestServerShow(TestServer):
|
||||
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.assertEqual(self.columns, columns)
|
||||
self.assertCountEqual(self.data, data)
|
||||
self.assertTupleEqual(self.columns, columns)
|
||||
self.assertTupleEqual(self.data, data)
|
||||
|
||||
def test_show_embedded_flavor(self):
|
||||
# Tests using --os-compute-api-version >= 2.47 where the flavor
|
||||
@ -8301,7 +8372,7 @@ class TestServerShow(TestServer):
|
||||
('server', self.server.name),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
self.server.info['flavor'] = {
|
||||
self.server.flavor = {
|
||||
'ephemeral': 0,
|
||||
'ram': 512,
|
||||
'original_name': 'm1.tiny',
|
||||
@ -8315,7 +8386,7 @@ class TestServerShow(TestServer):
|
||||
self.assertEqual(self.columns, columns)
|
||||
# Since the flavor details are in a dict we can't be sure of the
|
||||
# ordering so just assert that one of the keys is in the output.
|
||||
self.assertIn('original_name', data[2]._value)
|
||||
self.assertIn('original_name', data[columns.index('flavor')]._value)
|
||||
|
||||
def test_show_diagnostics(self):
|
||||
arglist = [
|
||||
|
@ -35,6 +35,9 @@ class CompareBySet(list):
|
||||
|
||||
|
||||
class TestCase(testtools.TestCase):
|
||||
# provide additional context for failures
|
||||
maxDiff = None
|
||||
|
||||
def setUp(self):
|
||||
testtools.TestCase.setUp(self)
|
||||
|
||||
|
@ -29,8 +29,6 @@ class TestVolumeGroupType(volume_fakes.TestVolume):
|
||||
|
||||
|
||||
class TestVolumeGroupTypeCreate(TestVolumeGroupType):
|
||||
maxDiff = 2000
|
||||
|
||||
fake_volume_group_type = volume_fakes.create_one_volume_group_type()
|
||||
|
||||
columns = (
|
||||
|
Loading…
x
Reference in New Issue
Block a user