Refactor test specific config parsing & generation
The dictionary is generated once during test creation at suite startup.
Change-Id: I4de511d64ccf65d2ec6eec45dcf28529b74c5d26
diff --git a/src/osmo_gsm_tester/core/suite.py b/src/osmo_gsm_tester/core/suite.py
index c55c5e9..9b9062d 100644
--- a/src/osmo_gsm_tester/core/suite.py
+++ b/src/osmo_gsm_tester/core/suite.py
@@ -98,7 +98,8 @@
def load_tests(self):
self.tests = []
for test_basename in self.definition.test_basenames:
- self.tests.append(test.Test(self, test_basename))
+ test_specific_config = self.config_suite_specific().get(test_basename.rstrip('.py'), {})
+ self.tests.append(test.Test(self, test_basename, test_specific_config))
def mark_start(self):
self.start_timestamp = time.time()
diff --git a/src/osmo_gsm_tester/core/test.py b/src/osmo_gsm_tester/core/test.py
index 7347229..45dfd41 100644
--- a/src/osmo_gsm_tester/core/test.py
+++ b/src/osmo_gsm_tester/core/test.py
@@ -35,11 +35,12 @@
PASS = 'pass'
FAIL = 'FAIL'
- def __init__(self, suite_run, test_basename):
+ def __init__(self, suite_run, test_basename, test_specific_config):
self.basename = test_basename
super().__init__(log.C_TST, self.basename)
self._run_dir = None
self.suite_run = suite_run
+ self._config_test_specific = test_specific_config
self.path = os.path.join(self.suite_run.definition.suite_dir, self.basename)
self.status = Test.UNKNOWN
self.start_timestamp = 0
@@ -134,6 +135,9 @@
self.status = Test.SKIP
self.duration = 0
+ def config_test_specific(self):
+ return self._config_test_specific
+
def set_report_stdout(self, text):
'Overwrite stdout text stored in report from inside a test'
self._report_stdout = text
diff --git a/src/osmo_gsm_tester/testenv.py b/src/osmo_gsm_tester/testenv.py
index d6c18ee..11199c2 100644
--- a/src/osmo_gsm_tester/testenv.py
+++ b/src/osmo_gsm_tester/testenv.py
@@ -146,7 +146,7 @@
return self.suite_run.config_suite_specific()
def config_test_specific(self):
- return self.suite_run.config_suite_specific().get(self._test.module_name(), {})
+ return self._test.config_test_specific()
def set_overlay_template_dir(self, template_dir=None):
'''Overlay a directory on top of default one when looking for