diff options
Diffstat (limited to 'ironic/tests')
6 files changed, 114 insertions, 0 deletions
diff --git a/ironic/tests/unit/api/controllers/v1/test_chassis.py b/ironic/tests/unit/api/controllers/v1/test_chassis.py index 4718f3076..a46c3e48a 100644 --- a/ironic/tests/unit/api/controllers/v1/test_chassis.py +++ b/ironic/tests/unit/api/controllers/v1/test_chassis.py @@ -230,6 +230,22 @@ class TestListChassis(test_api_base.BaseApiTest): next_marker = data['chassis'][-1]['uuid'] self.assertIn(next_marker, data['next']) + def test_collection_links_custom_fields(self): + fields = 'extra,uuid' + cfg.CONF.set_override('max_limit', 3, 'api') + for i in range(5): + obj_utils.create_test_chassis( + self.context, uuid=uuidutils.generate_uuid()) + + data = self.get_json( + '/chassis?fields=%s' % fields, + headers={api_base.Version.string: str(api_v1.max_version())}) + + self.assertEqual(3, len(data['chassis'])) + next_marker = data['chassis'][-1]['uuid'] + self.assertIn(next_marker, data['next']) + self.assertIn('fields', data['next']) + def test_get_collection_pagination_no_uuid(self): fields = 'extra' limit = 2 diff --git a/ironic/tests/unit/api/controllers/v1/test_node.py b/ironic/tests/unit/api/controllers/v1/test_node.py index 9cce45dc3..e5bf31575 100644 --- a/ironic/tests/unit/api/controllers/v1/test_node.py +++ b/ironic/tests/unit/api/controllers/v1/test_node.py @@ -736,6 +736,25 @@ class TestListNodes(test_api_base.BaseApiTest): next_marker = data['nodes'][-1]['uuid'] self.assertIn(next_marker, data['next']) + def test_collection_links_custom_fields(self): + fields = 'driver_info,uuid' + cfg.CONF.set_override('max_limit', 3, 'api') + nodes = [] + for id in range(5): + node = obj_utils.create_test_node(self.context, + uuid=uuidutils.generate_uuid(), + driver_info={'fake': 'value'}, + properties={'fake': 'bar'}) + nodes.append(node.uuid) + data = self.get_json( + '/nodes?fields=%s' % fields, + headers={api_base.Version.string: str(api_v1.max_version())}) + self.assertEqual(3, len(data['nodes'])) + + next_marker = data['nodes'][-1]['uuid'] + self.assertIn(next_marker, data['next']) + self.assertIn('fields', data['next']) + def test_get_collection_pagination_no_uuid(self): fields = 'name' limit = 2 diff --git a/ironic/tests/unit/api/controllers/v1/test_port.py b/ironic/tests/unit/api/controllers/v1/test_port.py index 67467b932..ea3da1f67 100644 --- a/ironic/tests/unit/api/controllers/v1/test_port.py +++ b/ironic/tests/unit/api/controllers/v1/test_port.py @@ -609,6 +609,25 @@ class TestListPorts(test_api_base.BaseApiTest): next_marker = data['ports'][-1]['uuid'] self.assertIn(next_marker, data['next']) + def test_collection_links_custom_fields(self): + fields = 'address,uuid' + cfg.CONF.set_override('max_limit', 3, 'api') + for i in range(5): + obj_utils.create_test_port( + self.context, + uuid=uuidutils.generate_uuid(), + node_id=self.node.id, + address='52:54:00:cf:2d:3%s' % i) + + data = self.get_json( + '/ports?fields=%s' % fields, + headers={api_base.Version.string: str(api_v1.max_version())}) + + self.assertEqual(3, len(data['ports'])) + next_marker = data['ports'][-1]['uuid'] + self.assertIn(next_marker, data['next']) + self.assertIn('fields', data['next']) + def test_port_by_address(self): address_template = "aa:bb:cc:dd:ee:f%d" for id_ in range(3): diff --git a/ironic/tests/unit/api/controllers/v1/test_portgroup.py b/ironic/tests/unit/api/controllers/v1/test_portgroup.py index 8591873b1..6e0c01b9b 100644 --- a/ironic/tests/unit/api/controllers/v1/test_portgroup.py +++ b/ironic/tests/unit/api/controllers/v1/test_portgroup.py @@ -327,6 +327,26 @@ class TestListPortgroups(test_api_base.BaseApiTest): next_marker = data['portgroups'][-1]['uuid'] self.assertIn(next_marker, data['next']) + def test_collection_links_custom_fields(self): + fields = 'address,uuid' + cfg.CONF.set_override('max_limit', 3, 'api') + for i in range(5): + obj_utils.create_test_portgroup( + self.context, + uuid=uuidutils.generate_uuid(), + node_id=self.node.id, + name='portgroup%s' % i, + address='52:54:00:cf:2d:3%s' % i) + + data = self.get_json( + '/portgroups?fields=%s' % fields, + headers={api_base.Version.string: str(api_v1.max_version())}) + + self.assertEqual(3, len(data['portgroups'])) + next_marker = data['portgroups'][-1]['uuid'] + self.assertIn(next_marker, data['next']) + self.assertIn('fields', data['next']) + def test_get_collection_pagination_no_uuid(self): fields = 'address' limit = 2 diff --git a/ironic/tests/unit/api/controllers/v1/test_volume_connector.py b/ironic/tests/unit/api/controllers/v1/test_volume_connector.py index e1ed61bbe..3f58fae41 100644 --- a/ironic/tests/unit/api/controllers/v1/test_volume_connector.py +++ b/ironic/tests/unit/api/controllers/v1/test_volume_connector.py @@ -273,6 +273,28 @@ class TestListVolumeConnectors(test_api_base.BaseApiTest): next_marker = data['connectors'][-1]['uuid'] self.assertIn(next_marker, data['next']) + def test_collection_links_custom_fields(self): + cfg.CONF.set_override('max_limit', 3, 'api') + connectors = [] + fields = 'uuid,extra' + for i in range(5): + connector = obj_utils.create_test_volume_connector( + self.context, node_id=self.node.id, + uuid=uuidutils.generate_uuid(), + connector_id='test-connector_id-%s' % i) + connectors.append(connector.uuid) + + data = self.get_json( + '/volume/connectors?fields=%s' % fields, + headers=self.headers) + + self.assertEqual(3, len(data['connectors'])) + self.assertIn('volume/connectors', data['next']) + + next_marker = data['connectors'][-1]['uuid'] + self.assertIn(next_marker, data['next']) + self.assertIn('fields', data['next']) + def test_get_collection_pagination_no_uuid(self): fields = 'connector_id' limit = 2 diff --git a/ironic/tests/unit/api/controllers/v1/test_volume_target.py b/ironic/tests/unit/api/controllers/v1/test_volume_target.py index abffd3799..cdd014af2 100644 --- a/ironic/tests/unit/api/controllers/v1/test_volume_target.py +++ b/ironic/tests/unit/api/controllers/v1/test_volume_target.py @@ -258,6 +258,24 @@ class TestListVolumeTargets(test_api_base.BaseApiTest): self.assertIn(next_marker, data['next']) self.assertIn('volume/targets', data['next']) + def test_collection_links_custom_fields(self): + fields = 'uuid,extra' + cfg.CONF.set_override('max_limit', 3, 'api') + targets = [] + for id_ in range(5): + target = obj_utils.create_test_volume_target( + self.context, node_id=self.node.id, + uuid=uuidutils.generate_uuid(), boot_index=id_) + targets.append(target.uuid) + data = self.get_json('/volume/targets?fields=%s' % fields, + headers=self.headers) + self.assertEqual(3, len(data['targets'])) + + next_marker = data['targets'][-1]['uuid'] + self.assertIn(next_marker, data['next']) + self.assertIn('volume/targets', data['next']) + self.assertIn('fields', data['next']) + def test_get_collection_pagination_no_uuid(self): fields = 'boot_index' limit = 2 |