Refactor unit test of "compute service list" command

The unit test of "compute service list" only checked the
"Disabled Reason" columns and its data. It is not enough.
This patch change the test to check all datas in the list.

Also, this patch modify the "Id" to "ID" in this command.

Change-Id: I988fd6365f2652185dd96d9417f294eba9c31cd9
This commit is contained in:
Huanxuan Ao 2016-06-22 18:43:42 +08:00
parent de909e4afc
commit 70f8ae7534
3 changed files with 42 additions and 9 deletions

View File

@ -73,7 +73,7 @@ class ListService(command.Lister):
compute_client = self.app.client_manager.compute
if parsed_args.long:
columns = (
"Id",
"ID",
"Binary",
"Host",
"Zone",
@ -84,7 +84,7 @@ class ListService(command.Lister):
)
else:
columns = (
"Id",
"ID",
"Binary",
"Host",
"Zone",

View File

@ -648,15 +648,19 @@ class FakeService(object):
:param Dictionary attrs:
A dictionary with all attributes
:return:
A FakeResource object, with id, name, ram, vcpus, properties
A FakeResource object, with id, host, binary
"""
attrs = attrs or {}
# Set default attributes.
service_info = {
'id': 'id-' + uuid.uuid4().hex,
'host': 'host-' + uuid.uuid4().hex,
'binary': 'binary-' + uuid.uuid4().hex,
'status': 'enabled',
'zone': 'zone-' + uuid.uuid4().hex,
'state': 'state-' + uuid.uuid4().hex,
'updated_at': 'time-' + uuid.uuid4().hex,
'disabled_reason': 'earthquake',
}

View File

@ -62,11 +62,35 @@ class TestServiceDelete(TestService):
class TestServiceList(TestService):
service = compute_fakes.FakeService.create_one_service()
columns = (
'ID',
'Binary',
'Host',
'Zone',
'Status',
'State',
'Updated At',
)
columns_long = columns + (
'Disabled Reason',
)
data = [(
service.id,
service.binary,
service.host,
service.zone,
service.status,
service.state,
service.updated_at,
)]
data_long = [data[0] + (service.disabled_reason, )]
def setUp(self):
super(TestServiceList, self).setUp()
self.service = compute_fakes.FakeService.create_one_service()
self.service_mock.list.return_value = [self.service]
# Get the command object to test
@ -93,8 +117,8 @@ class TestServiceList(TestService):
self.service.binary,
)
self.assertNotIn("Disabled Reason", columns)
self.assertNotIn(self.service.disabled_reason, list(data)[0])
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, list(data))
def test_service_list_with_long_option(self):
arglist = [
@ -114,8 +138,13 @@ class TestServiceList(TestService):
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.assertIn("Disabled Reason", columns)
self.assertIn(self.service.disabled_reason, list(data)[0])
self.service_mock.list.assert_called_with(
self.service.host,
self.service.binary,
)
self.assertEqual(self.columns_long, columns)
self.assertEqual(self.data_long, list(data))
class TestServiceSet(TestService):