示例#1
0
 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)
示例#2
0
 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
示例#3
0
 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)