diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py index ce2f6bd64f..5fcd9fa8f5 100644 --- a/openstackclient/tests/unit/compute/v2/fakes.py +++ b/openstackclient/tests/unit/compute/v2/fakes.py @@ -32,7 +32,6 @@ from openstack.compute.v2 import server_action as _server_action from openstack.compute.v2 import server_group as _server_group from openstack.compute.v2 import server_interface as _server_interface from openstack.compute.v2 import server_migration as _server_migration -from openstack.compute.v2 import service as _service from openstack.compute.v2 import usage as _usage from openstack.compute.v2 import volume_attachment as _volume_attachment @@ -485,51 +484,6 @@ def create_one_server_action(attrs=None): return server_action -def create_one_service(attrs=None): - """Create a fake service. - - :param dict attrs: A dictionary with all attributes - :return: A fake openstack.compute.v2.service.Service object - """ - 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', - 'availability_zone': 'zone-' + uuid.uuid4().hex, - 'state': 'state-' + uuid.uuid4().hex, - 'updated_at': 'time-' + uuid.uuid4().hex, - 'disabled_reason': 'earthquake', - # Introduced in API microversion 2.11 - 'is_forced_down': False, - } - - # Overwrite default attributes. - service_info.update(attrs) - - return _service.Service(**service_info) - - -def create_services(attrs=None, count=2): - """Create multiple fake services. - - :param dict attrs: - A dictionary with all attributes - :param int count: - The number of services to fake - :return: - A list of FakeResource objects faking the services - """ - services = [] - for i in range(0, count): - services.append(create_one_service(attrs)) - - return services - - def create_one_flavor(attrs=None): """Create a fake flavor. diff --git a/openstackclient/tests/unit/compute/v2/test_service.py b/openstackclient/tests/unit/compute/v2/test_service.py index 2997fec79c..ce7791d237 100644 --- a/openstackclient/tests/unit/compute/v2/test_service.py +++ b/openstackclient/tests/unit/compute/v2/test_service.py @@ -14,6 +14,8 @@ from unittest import mock +from openstack.compute.v2 import service as _service +from openstack.test import fakes as sdk_fakes from osc_lib import exceptions from openstackclient.compute.v2 import service @@ -21,11 +23,13 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes class TestServiceDelete(compute_fakes.TestComputev2): - services = compute_fakes.create_services(count=2) - def setUp(self): super().setUp() + self.services = list( + sdk_fakes.generate_fake_resources(_service.Service, count=2) + ) + self.compute_sdk_client.delete_service.return_value = None # Get the command object to test @@ -94,35 +98,11 @@ class TestServiceDelete(compute_fakes.TestComputev2): class TestServiceList(compute_fakes.TestComputev2): - service = compute_fakes.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.availability_zone, - service.status, - service.state, - service.updated_at, - ) - ] - data_long = [data[0] + (service.disabled_reason,)] - def setUp(self): super().setUp() + self.service = sdk_fakes.generate_fake_resource(_service.Service) + self.compute_sdk_client.services.return_value = [self.service] # Get the command object to test @@ -151,8 +131,29 @@ class TestServiceList(compute_fakes.TestComputev2): binary=self.service.binary, ) - self.assertEqual(self.columns, columns) - self.assertEqual(self.data, list(data)) + expected_columns = ( + 'ID', + 'Binary', + 'Host', + 'Zone', + 'Status', + 'State', + 'Updated At', + ) + expected_data = [ + ( + self.service.id, + self.service.binary, + self.service.host, + self.service.availability_zone, + self.service.status, + self.service.state, + self.service.updated_at, + ) + ] + + self.assertEqual(expected_columns, columns) + self.assertEqual(expected_data, list(data)) def test_service_list_with_long_option(self): arglist = [ @@ -179,8 +180,31 @@ class TestServiceList(compute_fakes.TestComputev2): binary=self.service.binary, ) - self.assertEqual(self.columns_long, columns) - self.assertEqual(self.data_long, list(data)) + expected_columns = ( + 'ID', + 'Binary', + 'Host', + 'Zone', + 'Status', + 'State', + 'Updated At', + 'Disabled Reason', + ) + expected_data = [ + ( + self.service.id, + self.service.binary, + self.service.host, + self.service.availability_zone, + self.service.status, + self.service.state, + self.service.updated_at, + self.service.disabled_reason, + ) + ] + + self.assertEqual(expected_columns, columns) + self.assertEqual(expected_data, list(data)) def test_service_list_with_long_option_2_11(self): self.set_compute_api_version('2.11') @@ -210,18 +234,40 @@ class TestServiceList(compute_fakes.TestComputev2): ) # In 2.11 there is also a forced_down column. - columns_long = self.columns_long + ('Forced Down',) - data_long = [self.data_long[0] + (self.service.is_forced_down,)] + expected_columns = ( + 'ID', + 'Binary', + 'Host', + 'Zone', + 'Status', + 'State', + 'Updated At', + 'Disabled Reason', + 'Forced Down', + ) + expected_data = [ + ( + self.service.id, + self.service.binary, + self.service.host, + self.service.availability_zone, + self.service.status, + self.service.state, + self.service.updated_at, + self.service.disabled_reason, + self.service.is_forced_down, + ) + ] - self.assertEqual(columns_long, columns) - self.assertEqual(data_long, list(data)) + self.assertEqual(expected_columns, columns) + self.assertEqual(expected_data, list(data)) class TestServiceSet(compute_fakes.TestComputev2): def setUp(self): super().setUp() - self.service = compute_fakes.create_one_service() + self.service = sdk_fakes.generate_fake_resource(_service.Service) self.compute_sdk_client.enable_service.return_value = self.service self.compute_sdk_client.disable_service.return_value = self.service