def _getOutcomeDetail(self, event): evt = events.OutcomeDetailEvent(event) result = self.session.hooks.outcomeDetail(evt) if evt.handled: return result exc_info = getattr(event, 'exc_info', None) test = getattr(event, 'test', None) if exc_info: detail = [util.exc_info_to_string(exc_info, test)] else: detail = [] if evt.extraDetail: detail.extend(evt.extraDetail) return "\n".join(detail)
def test_does_not_crash_with_mixed_unicode_and_nonascii_str(self): self.plugin.captureStderr = True test = self.case('test_mixed_unicode_and_nonascii_str') test(self.result) evt = events.OutcomeDetailEvent(self.watcher.events[0]) self.session.hooks.outcomeDetail(evt) extraDetail = "".join(evt.extraDetail) if six.PY2: for string in [ util.safe_decode(self.case.printed_nonascii_str), self.case.printed_unicode ]: assert string not in extraDetail, "Output unexpectedly found in error message" assert "OUTPUT ERROR" in extraDetail assert "UnicodeDecodeError" in extraDetail
def test_decorates_outcome_detail(self): test = self.case("test_out") test(self.result) evt = events.OutcomeDetailEvent(self.watcher.events[0]) self.session.hooks.outcomeDetail(evt) assert "hello" in "".join(evt.extraDetail)