diff --git a/ironicclient/tests/functional/base.py b/ironicclient/tests/functional/base.py index a0250ab48..9f4c4d925 100644 --- a/ironicclient/tests/functional/base.py +++ b/ironicclient/tests/functional/base.py @@ -239,3 +239,17 @@ class FunctionalTestBase(base.ClientTestBase): def validate_node(self, node_id): return self.ironic('node-validate', params=node_id) + + def list_driver(self, params=''): + return self.ironic('driver-list', params=params) + + def show_driver(self, driver_name): + driver_show = self.ironic('driver-show', params=driver_name) + return utils.get_dict_from_output(driver_show) + + def properties_driver(self, driver_name): + return self.ironic('driver-properties', params=driver_name) + + def get_drivers_names(self): + driver_list = self.list_driver() + return [x['Supported driver(s)'] for x in driver_list] diff --git a/ironicclient/tests/functional/test_driver.py b/ironicclient/tests/functional/test_driver.py new file mode 100644 index 000000000..66e434ef6 --- /dev/null +++ b/ironicclient/tests/functional/test_driver.py @@ -0,0 +1,45 @@ +# Copyright (c) 2015 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from ironicclient.tests.functional import base + + +class DriverSanityTestIronicClient(base.FunctionalTestBase): + """Sanity tests for testing actions with driver. + + Smoke test for the Ironic CLI commands which checks basic actions with + driver command like driver-show, driver-properties. + """ + + def test_driver_show(self): + """Test steps: + + 1) get drivers names + 2) check that each driver exists in driver-show output + """ + drivers_names = self.get_drivers_names() + for driver in drivers_names: + driver_show = self.show_driver(driver) + self.assertEqual(driver, driver_show['name']) + + def test_driver_properties(self): + """Test steps: + + 1) get drivers names + 2) check that each driver has some properties + """ + drivers_names = self.get_drivers_names() + for driver in drivers_names: + driver_properties = self.properties_driver(driver) + self.assertNotEqual([x['Property'] for x in driver_properties], [])