diff --git a/examples/tests/cit_parameters.py b/examples/tests/cit_parameters.py new file mode 100755 index 0000000000000000000000000000000000000000..819779acb54957dc78e6d24d3c3559e98dae4957 --- /dev/null +++ b/examples/tests/cit_parameters.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +from avocado import main +from avocado import Test + + +class CitParameters(Test): + + """ + Example test that fetches the parameters set on examples/cit/params.ini + + :avocado: tags=fast + """ + + def test(self): + self.params.get('color') + self.params.get('shape') + self.params.get('state') + self.params.get('material') + self.params.get('coating') + + +if __name__ == "__main__": + main() diff --git a/optional_plugins/varianter_cit/avocado_varianter_cit/__init__.py b/optional_plugins/varianter_cit/avocado_varianter_cit/__init__.py index a38ba562628627f56aad7c59a0870d33e3a7f279..018f00a11d170b16d311c24894eae67a4cfb2cb9 100644 --- a/optional_plugins/varianter_cit/avocado_varianter_cit/__init__.py +++ b/optional_plugins/varianter_cit/avocado_varianter_cit/__init__.py @@ -108,7 +108,7 @@ class VarianterCit(Varianter): for vid, variant in zip(variant_ids, self.variants): yield {"variant_id": vid, - "variant": TreeNode('', variant), + "variant": [TreeNode('', variant)], "paths": ['/']} def __len__(self): diff --git a/optional_plugins/varianter_cit/tests/test_functional.py b/optional_plugins/varianter_cit/tests/test_functional.py index 4e4d75ec1173bf953c10ca0ca30b5cdcf98f2753..3ff5800dbd84baa7161520d466f19d7d9cdaba74 100644 --- a/optional_plugins/varianter_cit/tests/test_functional.py +++ b/optional_plugins/varianter_cit/tests/test_functional.py @@ -1,9 +1,11 @@ import os +import shutil +import tempfile import unittest from avocado.utils import process -from selftests import AVOCADO +from selftests import AVOCADO, BASEDIR, temp_dir_prefix basedir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', '..') @@ -25,5 +27,64 @@ class Variants(unittest.TestCase): self.assertEqual(217, len(lines)) +class Run(unittest.TestCase): + + def setUp(self): + prefix = temp_dir_prefix(__name__, self, 'setUp') + self.tmpdir = tempfile.mkdtemp(prefix=prefix) + + def test(self): + os.chdir(BASEDIR) + params_path = os.path.join(BASEDIR, 'examples', + 'varianter_cit', 'params.ini') + test_path = os.path.join(BASEDIR, 'examples', + 'tests', 'cit_parameters.py') + cmd_line = ( + '{0} --show=test run --sysinfo=off --job-results-dir={1} ' + '--cit-order-of-combinations=1 ' + '--cit-parameter-file={2} ' + '-- {3}' + ).format(AVOCADO, self.tmpdir, params_path, test_path) + result = process.run(cmd_line) + # all values of colors should be looked for at least once + self.assertIn(b"PARAMS (key=color, path=*, default=None) => 'black'", + result.stdout) + self.assertIn(b"PARAMS (key=color, path=*, default=None) => 'gold'", + result.stdout) + self.assertIn(b"PARAMS (key=color, path=*, default=None) => 'red'", + result.stdout) + self.assertIn(b"PARAMS (key=color, path=*, default=None) => 'green'", + result.stdout) + # all values of shape should be looked for at least once + self.assertIn(b"PARAMS (key=shape, path=*, default=None) => 'square'", + result.stdout) + self.assertIn(b"PARAMS (key=shape, path=*, default=None) => 'triangle'", + result.stdout) + self.assertIn(b"PARAMS (key=shape, path=*, default=None) => 'circle'", + result.stdout) + # all values of state should be looked for at least once + self.assertIn(b"PARAMS (key=state, path=*, default=None) => 'liquid'", + result.stdout) + self.assertIn(b"PARAMS (key=state, path=*, default=None) => 'solid'", + result.stdout) + self.assertIn(b"PARAMS (key=state, path=*, default=None) => 'gas'", + result.stdout) + # all values of material should be looked for at least once + self.assertIn(b"PARAMS (key=material, path=*, default=None) => 'leather'", + result.stdout) + self.assertIn(b"PARAMS (key=material, path=*, default=None) => 'plastic'", + result.stdout) + self.assertIn(b"PARAMS (key=material, path=*, default=None) => 'aluminum'", + result.stdout) + # all values of coating should be looked for at least once + self.assertIn(b"PARAMS (key=coating, path=*, default=None) => 'anodic'", + result.stdout) + self.assertIn(b"PARAMS (key=coating, path=*, default=None) => 'cathodic'", + result.stdout) + + def tearDown(self): + shutil.rmtree(self.tmpdir) + + if __name__ == '__main__': unittest.main()