From 689f2a0fef9fe637eef38cdbe22574bcc42dd5ed Mon Sep 17 00:00:00 2001 From: SofiiaAndriichenko Date: Thu, 8 Dec 2016 05:02:17 -0500 Subject: [PATCH] Add tempest plugin API tests for driver Test for the following actions were added: * getting driver's properties * getting driver's RAID logical disk properties Change-Id: I395bc4f512a731ab4bfe8ac6a2d850816696400f --- .../services/baremetal/base.py | 6 ++++- .../baremetal/v1/json/baremetal_client.py | 27 +++++++++++++++++++ .../tests/api/admin/test_drivers.py | 21 ++++++++++++--- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/ironic_tempest_plugin/services/baremetal/base.py b/ironic_tempest_plugin/services/baremetal/base.py index 30589e13c2..682ea77e74 100644 --- a/ironic_tempest_plugin/services/baremetal/base.py +++ b/ironic_tempest_plugin/services/baremetal/base.py @@ -137,7 +137,11 @@ class BaremetalClient(rest_client.RestClient): return resp, self.deserialize(body) - def _show_request(self, resource, uuid, permanent=False, **kwargs): + def _show_request(self, + resource, + uuid=None, + permanent=False, + **kwargs): """Gets a specific object of the specified type. :param uuid: Unique identifier of the object in UUID format. diff --git a/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py b/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py index cf1abad9c7..f56ee63a34 100644 --- a/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py +++ b/ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py @@ -412,3 +412,30 @@ class BaremetalClient(base.BaremetalClient): resp, body = self._delete_request('nodes/%s/vifs' % node_uuid, vif_id) self.expected_success(204, resp.status) return resp, body + + @base.handle_errors + def get_driver_properties(self, driver_name): + """Get properties information about driver. + + :param driver_name: Name of driver. + :return: tuple of response and serialized properties as a dictionary. + + """ + uri = 'drivers/%s/properties' % driver_name + resp, body = self.get(uri) + self.expected_success(200, resp.status) + return resp, self.deserialize(body) + + @base.handle_errors + def get_driver_logical_disk_properties(self, driver_name): + """Get driver logical disk properties. + + :param driver_name: Name of driver. + :return: tuple of response and serialized logical disk properties as + a dictionary. + + """ + uri = 'drivers/%s/raid/logical_disk_properties' % driver_name + resp, body = self.get(uri) + self.expected_success(200, resp.status) + return resp, self.deserialize(body) diff --git a/ironic_tempest_plugin/tests/api/admin/test_drivers.py b/ironic_tempest_plugin/tests/api/admin/test_drivers.py index c9319b6691..e80a96360e 100644 --- a/ironic_tempest_plugin/tests/api/admin/test_drivers.py +++ b/ironic_tempest_plugin/tests/api/admin/test_drivers.py @@ -13,8 +13,9 @@ # under the License. from tempest import config -from tempest import test +from tempest.lib import decorators +from ironic_tempest_plugin.tests.api.admin import api_microversion_fixture from ironic_tempest_plugin.tests.api.admin import base CONF = config.CONF @@ -22,18 +23,32 @@ CONF = config.CONF class TestDrivers(base.BaseBaremetalTest): """Tests for drivers.""" + @classmethod def resource_setup(cls): super(TestDrivers, cls).resource_setup() cls.driver_name = CONF.baremetal.driver - @test.idempotent_id('5aed2790-7592-4655-9b16-99abcc2e6ec5') + @decorators.idempotent_id('5aed2790-7592-4655-9b16-99abcc2e6ec5') def test_list_drivers(self): _, drivers = self.client.list_drivers() self.assertIn(self.driver_name, [d['name'] for d in drivers['drivers']]) - @test.idempotent_id('fb3287a3-c4d7-44bf-ae9d-1eef906d78ce') + @decorators.idempotent_id('fb3287a3-c4d7-44bf-ae9d-1eef906d78ce') def test_show_driver(self): _, driver = self.client.show_driver(self.driver_name) self.assertEqual(self.driver_name, driver['name']) + + @decorators.idempotent_id('6efa976f-78a2-4859-b3aa-97d960d6e5e5') + def test_driver_properties(self): + _, properties = self.client.get_driver_properties(self.driver_name) + self.assertNotEmpty(properties) + + @decorators.idempotent_id('fdf61f5a-f59d-4235-ad6c-cc718740e3e3') + def test_driver_logical_disk_properties(self): + self.useFixture( + api_microversion_fixture.APIMicroversionFixture('1.12')) + _, properties = self.client.get_driver_logical_disk_properties( + self.driver_name) + self.assertNotEmpty(properties)