From 37fe4b61deb6701d5f17f83a5f8d7afe3667d392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Doktor?= Date: Tue, 20 Mar 2018 10:57:32 +0100 Subject: [PATCH] test: Don't fail on getting state with non-standard params MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "self.params" should be Avocado params, but tests might override them (and Avocado-vt does). Let's be lenient to failures and simply report None. Signed-off-by: Lukáš Doktor --- avocado/core/test.py | 9 ++++++--- .../html/avocado_result_html/__init__.py | 19 +++++++++++-------- .../resultsdb/avocado_resultsdb/__init__.py | 7 ++++--- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/avocado/core/test.py b/avocado/core/test.py index 4ab33b43..4d6816ad 100644 --- a/avocado/core/test.py +++ b/avocado/core/test.py @@ -642,9 +642,12 @@ class Test(unittest.TestCase, TestData): state['class_name'] = self.__class__.__name__ state['job_logdir'] = self.job.logdir state['job_unique_id'] = self.job.unique_id - state['params'] = [(path, key, value) - for path, key, value - in self.params.iteritems()] + try: + state['params'] = [(path, key, value) + for path, key, value + in self.params.iteritems()] + except Exception: + state['params'] = None return state def _register_log_file_handler(self, logger, formatter, filename, diff --git a/optional_plugins/html/avocado_result_html/__init__.py b/optional_plugins/html/avocado_result_html/__init__.py index f7a9e870..6d32d7f8 100644 --- a/optional_plugins/html/avocado_result_html/__init__.py +++ b/optional_plugins/html/avocado_result_html/__init__.py @@ -126,15 +126,18 @@ class ReportModel(object): formatted = {} formatted['uid'] = tst['name'].uid formatted['name'] = tst['name'].name - params = '' - try: - parameters = 'Params:\n' - for path, key, value in tst['params']: - parameters += ' %s:%s => %s\n' % (path, key, value) - except KeyError: - pass + if tst['params']: + params = '' + try: + parameters = 'Params:\n' + for path, key, value in tst['params']: + parameters += ' %s:%s => %s\n' % (path, key, value) + except KeyError: + pass + else: + params = parameters else: - params = parameters + params = "No params" formatted['params'] = params formatted['variant'] = tst['name'].variant or '' formatted['status'] = tst['status'] diff --git a/optional_plugins/resultsdb/avocado_resultsdb/__init__.py b/optional_plugins/resultsdb/avocado_resultsdb/__init__.py index 34bc2caa..3cc73602 100644 --- a/optional_plugins/resultsdb/avocado_resultsdb/__init__.py +++ b/optional_plugins/resultsdb/avocado_resultsdb/__init__.py @@ -114,9 +114,10 @@ class ResultsdbResultEvent(ResultEvents): 'status': state['status']} params = {} - for path, key, value in state['params']: - params['param %s' % key] = '%s (path: %s)' % (value, path) - data.update(params) + if state['params']: + for path, key, value in state['params']: + params['param %s' % key] = '%s (path: %s)' % (value, path) + data.update(params) self.rdbapi.create_result(outcome, name, group, note, ref_url, **data) -- GitLab