Add unit tests for "host list" and "host show" commands
Missing unit tests for "host list" and "host show" commands in computev2, this patch add them. Change-Id: Ib157920fa2267ec96d206cdf46213563a105501b
This commit is contained in:
		| @@ -1088,7 +1088,13 @@ class FakeHost(object): | ||||
|             "stats": "", | ||||
|             "numa_topology": "", | ||||
|             "ram_allocation_ratio": 1.0, | ||||
|             "cpu_allocation_ratio": 1.0 | ||||
|             "cpu_allocation_ratio": 1.0, | ||||
|             "zone": 'zone-' + uuid.uuid4().hex, | ||||
|             "host_name": 'name-' + uuid.uuid4().hex, | ||||
|             "service": 'service-' + uuid.uuid4().hex, | ||||
|             "cpu": 4, | ||||
|             "disk_gb": 100, | ||||
|             'project': 'project-' + uuid.uuid4().hex, | ||||
|         } | ||||
|         host_info.update(attrs) | ||||
|         host = fakes.FakeResource( | ||||
|   | ||||
| @@ -15,6 +15,7 @@ | ||||
|  | ||||
| from openstackclient.compute.v2 import host | ||||
| from openstackclient.tests.compute.v2 import fakes as compute_fakes | ||||
| from openstackclient.tests import utils as tests_utils | ||||
|  | ||||
|  | ||||
| class TestHost(compute_fakes.TestComputev2): | ||||
| @@ -27,6 +28,58 @@ class TestHost(compute_fakes.TestComputev2): | ||||
|         self.host_mock.reset_mock() | ||||
|  | ||||
|  | ||||
| class TestHostList(TestHost): | ||||
|  | ||||
|     host = compute_fakes.FakeHost.create_one_host() | ||||
|  | ||||
|     columns = ( | ||||
|         'Host Name', | ||||
|         'Service', | ||||
|         'Zone', | ||||
|     ) | ||||
|  | ||||
|     data = [( | ||||
|         host.host_name, | ||||
|         host.service, | ||||
|         host.zone, | ||||
|     )] | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(TestHostList, self).setUp() | ||||
|  | ||||
|         self.host_mock.list_all.return_value = [self.host] | ||||
|  | ||||
|         self.cmd = host.ListHost(self.app, None) | ||||
|  | ||||
|     def test_host_list_no_option(self): | ||||
|         arglist = [] | ||||
|         verifylist = [] | ||||
|  | ||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||
|  | ||||
|         columns, data = self.cmd.take_action(parsed_args) | ||||
|  | ||||
|         self.host_mock.list_all.assert_called_with(None) | ||||
|         self.assertEqual(self.columns, columns) | ||||
|         self.assertEqual(self.data, list(data)) | ||||
|  | ||||
|     def test_host_list_with_option(self): | ||||
|         arglist = [ | ||||
|             '--zone', self.host.zone, | ||||
|         ] | ||||
|         verifylist = [ | ||||
|             ('zone', self.host.zone), | ||||
|         ] | ||||
|  | ||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||
|  | ||||
|         columns, data = self.cmd.take_action(parsed_args) | ||||
|  | ||||
|         self.host_mock.list_all.assert_called_with(self.host.zone) | ||||
|         self.assertEqual(self.columns, columns) | ||||
|         self.assertEqual(self.data, list(data)) | ||||
|  | ||||
|  | ||||
| class TestHostSet(TestHost): | ||||
|  | ||||
|     def setUp(self): | ||||
| @@ -73,3 +126,54 @@ class TestHostSet(TestHost): | ||||
|  | ||||
|         body = {'status': 'enable', 'maintenance_mode': 'disable'} | ||||
|         self.host_mock.update.assert_called_with(self.host.host, body) | ||||
|  | ||||
|  | ||||
| class TestHostShow(TestHost): | ||||
|  | ||||
|     host = compute_fakes.FakeHost.create_one_host() | ||||
|  | ||||
|     columns = ( | ||||
|         'Host', | ||||
|         'Project', | ||||
|         'CPU', | ||||
|         'Memory MB', | ||||
|         'Disk GB', | ||||
|     ) | ||||
|     data = [( | ||||
|         host.host, | ||||
|         host.project, | ||||
|         host.cpu, | ||||
|         host.memory_mb, | ||||
|         host.disk_gb, | ||||
|     )] | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(TestHostShow, self).setUp() | ||||
|  | ||||
|         self.host_mock.get.return_value = [self.host] | ||||
|  | ||||
|         self.cmd = host.ShowHost(self.app, None) | ||||
|  | ||||
|     def test_host_show_no_option(self): | ||||
|         arglist = [] | ||||
|         verifylist = [] | ||||
|  | ||||
|         # Missing required args should bail here | ||||
|         self.assertRaises(tests_utils.ParserException, self.check_parser, | ||||
|                           self.cmd, arglist, verifylist) | ||||
|  | ||||
|     def test_host_show_with_option(self): | ||||
|         arglist = [ | ||||
|             self.host.host_name, | ||||
|         ] | ||||
|         verifylist = [ | ||||
|             ('host', self.host.host_name), | ||||
|         ] | ||||
|  | ||||
|         parsed_args = self.check_parser(self.cmd, arglist, verifylist) | ||||
|  | ||||
|         columns, data = self.cmd.take_action(parsed_args) | ||||
|  | ||||
|         self.host_mock.get.assert_called_with(self.host.host_name) | ||||
|         self.assertEqual(self.columns, columns) | ||||
|         self.assertEqual(self.data, list(data)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Huanxuan Ao
					Huanxuan Ao