def on_finish_test_case(self, test_item): if test_item.result: try: result = canon.serialize(test_item.result[0]) except Exception as e: yatest_logger.exception("Error while serializing test results") test_item.set_error("Invalid test result: {}".format(e)) test_item.set_status("fail") result = None else: result = None message = { 'class': yatest_lib.tools.to_utf8(test_item.class_name), 'subtest': yatest_lib.tools.to_utf8(test_item.test_name), 'status': test_item.status, 'comment': self._get_comment(test_item), 'time': test_item.duration, 'result': result, 'metrics': pytest.config.test_metrics.get(test_item.nodeid), 'is_diff_test': 'diff_test' in test_item.keywords, 'tags': _get_item_tags(test_item), } if test_item.nodeid in pytest.config.test_logs: message['logs'] = pytest.config.test_logs[test_item.nodeid] self.trace('subtest-finished', message)
def on_finish_test_case(self, test_item, duration_only=False): if test_item.result is not None: try: result = canon.serialize(test_item.result) except Exception as e: yatest_logger.exception("Error while serializing test results") test_item.set_error("Invalid test result: {}".format(e)) test_item.set_status("fail") result = None else: result = None if duration_only and test_item.nodeid in self._test_messages: # add teardown time message = self._test_messages[test_item.nodeid] else: comment = self._test_messages[test_item.nodeid]['comment'] if test_item.nodeid in self._test_messages else '' comment += self._get_comment(test_item) message = { 'class': yatest_lib.tools.to_utf8(test_item.class_name), 'subtest': yatest_lib.tools.to_utf8(test_item.test_name), 'status': test_item.status, 'comment': comment, 'result': result, 'metrics': pytest.config.test_metrics.get(test_item.nodeid), 'is_diff_test': 'diff_test' in test_item.keywords, 'tags': _get_item_tags(test_item), } if test_item.nodeid in pytest.config.test_logs: message['logs'] = pytest.config.test_logs[test_item.nodeid] message['time'] = self._test_duration.get(test_item.nodeid, test_item.duration) self.trace('subtest-finished', message) self._test_messages[test_item.nodeid] = message
def test_serialize(data, expected_val, expected_type): data = external.serialize(data) assert expected_type == type(data), data assert expected_val == data