Merge "Add unit test for TestServerList to test --long option."

This commit is contained in:
Jenkins 2015-12-10 18:25:40 +00:00 committed by Gerrit Code Review
commit f2339e94b0

View File

@ -624,10 +624,17 @@ class TestServerList(TestServer):
'Status',
'Networks',
)
# Data returned by corresponding Nova API. The elements in this list are
# tuples filled with server attributes.
data = []
columns_long = (
'ID',
'Name',
'Status',
'Task State',
'Power State',
'Networks',
'Availability Zone',
'Host',
'Properties',
)
# Default search options, in the case of no commandline option specified.
search_opts = {
@ -656,12 +663,18 @@ class TestServerList(TestServer):
def setUp(self):
super(TestServerList, self).setUp()
# The fake servers' attributes.
# The fake servers' attributes. Use the original attributes names in
# nova, not the ones printed by "server list" command.
self.attrs = {
'status': 'ACTIVE',
'OS-EXT-STS:task_state': 'None',
'OS-EXT-STS:power_state': 0x01, # Running
'networks': {
u'public': [u'10.20.30.40', u'2001:db8::5']
},
'OS-EXT-AZ:availability_zone': 'availability-zone-xxx',
'OS-EXT-SRV-ATTR:host': 'host-name-xxx',
'Metadata': '',
}
# The servers to be listed.
@ -673,6 +686,9 @@ class TestServerList(TestServer):
self.cmd = server.ListServer(self.app, None)
# Prepare data returned by fake Nova API.
self.data = []
self.data_long = []
for s in self.servers:
self.data.append((
s.id,
@ -680,6 +696,19 @@ class TestServerList(TestServer):
s.status,
server._format_servers_list_networks(s.networks),
))
self.data_long.append((
s.id,
s.name,
s.status,
getattr(s, 'OS-EXT-STS:task_state'),
server._format_servers_list_power_state(
getattr(s, 'OS-EXT-STS:power_state')
),
server._format_servers_list_networks(s.networks),
getattr(s, 'OS-EXT-AZ:availability_zone'),
getattr(s, 'OS-EXT-SRV-ATTR:host'),
s.Metadata,
))
def test_server_list_no_option(self):
arglist = []
@ -695,6 +724,22 @@ class TestServerList(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(tuple(self.data), tuple(data))
def test_server_list_long_option(self):
arglist = [
'--long',
]
verifylist = [
('all_projects', False),
('long', True),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.servers_mock.list.assert_called_with(**self.kwargs)
self.assertEqual(self.columns_long, columns)
self.assertEqual(tuple(self.data_long), tuple(data))
class TestServerLock(TestServer):