Allow setting env vars via testcases.yaml 50/73950/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Thu, 13 Apr 2023 08:33:20 +0000 (10:33 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Thu, 13 Apr 2023 13:59:10 +0000 (15:59 +0200)
It helps defining env vars per test cases.
/home/opnfv/functest/conf/env_file is rather designed
for comme env vars ro all test cases (see OpenStack Creds).

Change-Id: Ic5d34701475440e1f768bbb22be7a4cfa3e1625b
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit fd8498598096cabb991cf3494220a9715d3360f7)

xtesting/ci/run_tests.py

index 0b94c28..57562ef 100644 (file)
@@ -143,6 +143,7 @@ class Runner():
 
     def run_test(self, test):
         """Run one test case"""
+        # pylint: disable=too-many-branches
         if not test.is_enabled() or test.is_skipped():
             msg = prettytable.PrettyTable(
                 header_style='upper', padding_width=5,
@@ -168,6 +169,11 @@ class Runner():
                     LOGGER.info("Skipping test case '%s'...", test.get_name())
                     LOGGER.info("Test result:\n\n%s\n", test_case)
                     return testcase.TestCase.EX_TESTCASE_SKIPPED
+                if 'env' in run_dict:
+                    LOGGER.info(
+                        "Setting env for test case '%s'...", test.get_name())
+                    for key, value in run_dict['env'].items():
+                        os.environ[key] = str(value)
                 LOGGER.info("Running test case '%s'...", test.get_name())
                 try:
                     kwargs = run_dict['args']