コード例 #1
0
    def test_does_not_crash_with_mixed_unicode_and_nonascii_str(self):
        class Dummy:
            pass

        d = Dummy()
        c = Capture()
        c.start()
        printed_nonascii_str = force_unicode("test 日本").encode('utf-8')
        printed_unicode = force_unicode("Hello")
        print printed_nonascii_str
        print printed_unicode
        try:
            raise Exception("boom")
        except:
            err = sys.exc_info()
        formatted = c.formatError(d, err)
        _, fev, _ = formatted

        if py2:
            for string in [
                    force_unicode(printed_nonascii_str, encoding='utf-8'),
                    printed_unicode
            ]:
                assert string not in fev, "Output unexpectedly found in error message"
            assert d.capturedOutput == '', "capturedOutput unexpectedly non-empty"
            assert "OUTPUT ERROR" in fev
            assert "captured stdout exception traceback" in fev
            assert "UnicodeDecodeError" in fev
        else:
            for string in [repr(printed_nonascii_str), printed_unicode]:
                assert string in fev, "Output not found in error message"
                assert string in d.capturedOutput, "Output not attached to test"
コード例 #2
0
 def test_format_nonascii_error(self):
     class Dummy:
         pass
     d = Dummy()
     c = Capture()
     c.start()
     try:
         print "debug 日本"
         raise AssertionError(u'response does not contain 名')
     except:
         err = sys.exc_info()
     formatted = c.formatError(d, err)
コード例 #3
0
 def test_format_error(self):
     class Dummy:
         pass
     d = Dummy()
     c = Capture()
     c.start()
     try:
         print "Oh my!"
         raise Exception("boom")
     except:
         err = sys.exc_info()
     formatted = c.formatError(d, err)
     ec, ev, tb = err
     (fec, fev, ftb) = formatted
     # print fec, fev, ftb
     
     self.assertEqual(ec, fec)
     self.assertEqual(tb, ftb)
     assert 'Oh my!' in fev, "Output not found in error message"
     assert 'Oh my!' in d.capturedOutput, "Output not attached to test"
コード例 #4
0
 def test_format_error(self):
     class Dummy:
         pass
     d = Dummy()
     c = Capture()
     c.start()
     try:
         print "Oh my!"
         raise Exception("boom")
     except:
         err = sys.exc_info()
     formatted = c.formatError(d, err)
     ec, ev, tb = err
     (fec, fev, ftb) = formatted
     # print fec, fev, ftb
     
     self.assertEqual(ec, fec)
     self.assertEqual(tb, ftb)
     assert 'Oh my!' in fev, "Output not found in error message"
     assert 'Oh my!' in d.capturedOutput, "Output not attached to test"