diff options
-rw-r--r-- | ci/testcases.yaml | 2 | ||||
-rw-r--r-- | ci/tier_handler.py | 10 | ||||
-rwxr-xr-x | testcases/features/doctor.py | 3 | ||||
-rw-r--r-- | testcases/vnf/RNC/parser.py | 27 | ||||
-rw-r--r-- | utils/functest_utils.py | 21 |
5 files changed, 35 insertions, 28 deletions
diff --git a/ci/testcases.yaml b/ci/testcases.yaml index 315969ae7..221d2fcf1 100644 --- a/ci/testcases.yaml +++ b/ci/testcases.yaml @@ -257,7 +257,7 @@ tiers: scenario: '(ocl)|(nosdn)|^(os-odl)((?!bgpvpn).)*$' - name: parser - criteria: 'status == "PASS"' + criteria: 'ret == 0' blocking: false description: >- Test suite from Parser project. diff --git a/ci/tier_handler.py b/ci/tier_handler.py index e50fbe6fd..1eadfba50 100644 --- a/ci/tier_handler.py +++ b/ci/tier_handler.py @@ -111,17 +111,21 @@ class TestCase: self.criteria = criteria self.blocking = blocking + @staticmethod + def is_none(item): + return item is None or item is "" + def is_compatible(self, ci_installer, ci_scenario): try: - if ci_installer is not None: + if not self.is_none(ci_installer): if re.search(self.dependency.get_installer(), ci_installer) is None: return False - if ci_scenario is not None: + if not self.is_none(ci_scenario): if re.search(self.dependency.get_scenario(), ci_scenario) is None: return False - return not (ci_scenario is None and ci_installer is None) + return True except TypeError: return False diff --git a/testcases/features/doctor.py b/testcases/features/doctor.py index bdf3ddc35..184ab032b 100755 --- a/testcases/features/doctor.py +++ b/testcases/features/doctor.py @@ -37,7 +37,8 @@ def main(): cmd = 'cd %s/tests && ./run.sh' % DOCTOR_REPO start_time = time.time() - ret = functest_utils.execute_command(cmd, logger, exit_on_error=False) + ret = functest_utils.execute_command(cmd, logger, info=True, + exit_on_error=False) stop_time = time.time() duration = round(stop_time - start_time, 1) diff --git a/testcases/vnf/RNC/parser.py b/testcases/vnf/RNC/parser.py index 485af0e14..91d5bb06a 100644 --- a/testcases/vnf/RNC/parser.py +++ b/testcases/vnf/RNC/parser.py @@ -32,33 +32,18 @@ logger = ft_logger.Logger("parser").getLogger() def main(): - EXIT_CODE = -1 project = 'parser' case_name = 'parser-basics' cmd = 'cd %s/tests && ./functest_run.sh' % PARSER_REPO - start_time = time.time() + start_time = time.time() ret = functest_utils.execute_command(cmd, logger, exit_on_error=False) - stop_time = time.time() - duration = round(stop_time - start_time, 1) - if ret == 0: - EXIT_CODE = 0 - logger.info("parser OK") - test_status = 'OK' - else: - logger.info("parser FAILED") - test_status = 'NOK' - - details = { - 'timestart': start_time, - 'duration': duration, - 'status': test_status, - } - status = "FAIL" - if details['status'] == "OK": - status = "PASS" + status, details = functest_utils.check_test_result(case_name, + ret, + start_time, + stop_time) functest_utils.logger_test_results(logger, project, @@ -73,7 +58,7 @@ def main(): stop_time, status, details) - exit(EXIT_CODE) + exit(ret) if __name__ == '__main__': main() diff --git a/utils/functest_utils.py b/utils/functest_utils.py index 5f790a015..cb2333d42 100644 --- a/utils/functest_utils.py +++ b/utils/functest_utils.py @@ -357,16 +357,33 @@ def check_success_rate(case_name, success_rate): success_rate = float(success_rate) criteria = get_criteria_by_test(case_name) - def get_value(op): + def get_criteria_value(op): return float(criteria.split(op)[1].rstrip('%')) status = 'FAIL' ops = ['==', '>='] for op in ops: if op in criteria: - c_value = get_value(op) + c_value = get_criteria_value(op) if eval("%s %s %s" % (success_rate, op, c_value)): status = 'PASS' break return status + + +def check_test_result(test_name, ret, start_time, stop_time): + def get_criteria_value(): + return get_criteria_by_test(test_name).split('==')[1].strip() + + status = 'FAIL' + if str(ret) == get_criteria_value(): + status = 'PASS' + + details = { + 'timestart': start_time, + 'duration': round(stop_time - start_time, 1), + 'status': status, + } + + return status, details |