From a92c70b82ef5e68ecbf0fbb6cd6c4d0b904df3af Mon Sep 17 00:00:00 2001 From: xudan Date: Tue, 25 Apr 2017 03:41:41 +0000 Subject: Bugfix: KeyError when tempest_custom runs wrong JIRA: DOVETAIL-406 1. When there are something wrong with the test case tempest_custom, it's details json data are "details": {}, So it will throw KeyError exception in this situation. 2. Catch this exception and set all sub_testcases FAIL. 3. Disable the exceed_max_retry_times(). Change-Id: I6bdfc5944a535625b2211a3bd8096a13b81b339e Signed-off-by: xudan --- dovetail/report.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'dovetail/report.py') diff --git a/dovetail/report.py b/dovetail/report.py index c51ce687..2c6200d3 100644 --- a/dovetail/report.py +++ b/dovetail/report.py @@ -416,16 +416,20 @@ class FunctestChecker(object): testcase_passed = 'SKIP' for sub_testcase in sub_testcase_list: self.logger.debug('check sub_testcase:%s', sub_testcase) - if self.get_sub_testcase(sub_testcase, - db_result['details']['errors']): + try: + if self.get_sub_testcase(sub_testcase, + db_result['details']['errors']): + testcase.sub_testcase_passed(sub_testcase, 'FAIL') + testcase_passed = 'FAIL' + continue + if self.get_sub_testcase(sub_testcase, + db_result['details']['skipped']): + testcase.sub_testcase_passed(sub_testcase, 'SKIP') + else: + testcase.sub_testcase_passed(sub_testcase, 'PASS') + except KeyError: testcase.sub_testcase_passed(sub_testcase, 'FAIL') testcase_passed = 'FAIL' - continue - if self.get_sub_testcase(sub_testcase, - db_result['details']['skipped']): - testcase.sub_testcase_passed(sub_testcase, 'SKIP') - else: - testcase.sub_testcase_passed(sub_testcase, 'PASS') if testcase_passed == 'SKIP': for sub_testcase in sub_testcase_list: -- cgit 1.2.3-korg