def append_result(self, tc_file=None): """ Append a new fully constructed Result to the internal ResultList. :param tc_file: Test case file path :return: Nothing """ result = Result() result.set_tc_metadata(self._configuration.config) tc_rev = get_git_info(self._configuration.get_tc_abspath(tc_file), verbose=self._args.verbose) if self._logger: self._logger.debug(tc_rev) result.set_tc_git_info(tc_rev) result.component = self._configuration.get_test_component() result.feature = self._configuration.get_features_under_test() result.skip_reason = self._configuration.skip_reason() if self._configuration.skip() else '' result.fail_reason = self._failreason result.logpath = os.path.abspath(LogManager.get_base_dir()) result.logfiles = LogManager.get_logfiles() result.retcode = self.retcode result.set_dutinformation(self._resources.dutinformations) # pylint: disable=unused-variable for platform, serialnumber in zip(self._resources.get_platforms(), self._resources.get_serialnumbers()): # Zipping done to keep platforms and serial numbers aligned in case some sn:s are # missing result.dut_vendor.append('') result.dut_resource_id.append(serialnumber) result.dut_count = self._resources.get_dut_count() result.duts = self._resources.resource_configuration.get_dut_configuration() if self._resources.resource_configuration.count_hardware() > 0: result.dut_type = 'hw' elif self._resources.resource_configuration.count_process() > 0: result.dut_type = 'process' else: result.dut_type = None self._result_list.append(result)
def test_reportconsole_decodefail(self): saved_stdout = sys.stdout failing_message = "\x00\x00\x00\x00\x00\x00\x01\xc8" results = ResultList() res = Result() res.set_verdict("fail", 1001, 0) res.fail_reason = failing_message results.append(res) try: out = StringIO() sys.stdout = out report = ReportConsole(results) report.generate() output = out.getvalue().strip() lines = output.split("\n") self.assertEqual(len(lines), 15) self.assertRegexpMatches(lines[8], r"Final Verdict.*FAIL", lines[8]) self.assertRegexpMatches(lines[9], r"count.*1", lines[9]) self.assertRegexpMatches(lines[10], r"passrate.*0.00 \%", lines[10]) finally: sys.stdout = saved_stdout