Exemple #1
0
 def test_walk_tb(self):
     try:
         1 / 0
     except Exception:
         _, _, tb = sys.exc_info()
     s = list(traceback.walk_tb(tb))
     self.assertEqual(len(s), 1)
 def test_walk_tb(self):
     try:
         1/0
     except Exception:
         _, _, tb = sys.exc_info()
     s = list(traceback.walk_tb(tb))
     self.assertEqual(len(s), 1)
Exemple #3
0
 def test_smoke(self):
     try:
         1 / 0
     except Exception:
         exc_info = sys.exc_info()
         exc = traceback.TracebackException(*exc_info)
         expected_stack = traceback.StackSummary.extract(
             traceback.walk_tb(exc_info[2]))
     self.assertEqual(None, exc.__cause__)
     self.assertEqual(None, exc.__context__)
     self.assertEqual(False, exc.__suppress_context__)
     self.assertEqual(expected_stack, exc.stack)
     self.assertEqual(exc_info[0], exc.exc_type)
     self.assertEqual(str(exc_info[1]), str(exc))
Exemple #4
0
 def test_limit(self):
     def recurse(n):
         if n:
             recurse(n-1)
         else:
             1/0
     try:
         recurse(10)
     except Exception:
         exc_info = sys.exc_info()
         exc = traceback.TracebackException(*exc_info, limit=5)
         expected_stack = traceback.StackSummary.extract(
             traceback.walk_tb(exc_info[2]), limit=5)
     self.assertEqual(expected_stack, exc.stack)
 def test_smoke(self):
     try:
         1/0
     except Exception:
         exc_info = sys.exc_info()
         exc = traceback.TracebackException(*exc_info)
         expected_stack = traceback.StackSummary.extract(
             traceback.walk_tb(exc_info[2]))
     self.assertEqual(None, exc.__cause__)
     self.assertEqual(None, exc.__context__)
     self.assertEqual(False, exc.__suppress_context__)
     self.assertEqual(expected_stack, exc.stack)
     self.assertEqual(exc_info[0], exc.exc_type)
     self.assertEqual(str(exc_info[1]), str(exc))
Exemple #6
0
 def test_from_exception(self):
     # Check all the parameters are accepted.
     def foo():
         1/0
     try:
         foo()
     except Exception as e:
         exc_info = sys.exc_info()
         self.expected_stack = traceback.StackSummary.extract(
             traceback.walk_tb(exc_info[2]), limit=1, lookup_lines=False,
             capture_locals=True)
         self.exc = traceback.TracebackException.from_exception(
             e, limit=1, lookup_lines=False, capture_locals=True)
     expected_stack = self.expected_stack
     exc = self.exc
     self.assertEqual(None, exc.__cause__)
     self.assertEqual(None, exc.__context__)
     self.assertEqual(False, exc.__suppress_context__)
     self.assertEqual(expected_stack, exc.stack)
     self.assertEqual(exc_info[0], exc.exc_type)
     self.assertEqual(str(exc_info[1]), str(exc))
Exemple #7
0
 def test_cause(self):
     try:
         try:
             1 / 0
         finally:
             exc_info_context = sys.exc_info()
             exc_context = traceback.TracebackException(*exc_info_context)
             cause = Exception("cause")
             raise_from(Exception("uh ok"), cause)
     except Exception:
         exc_info = sys.exc_info()
         exc = traceback.TracebackException(*exc_info)
         expected_stack = traceback.StackSummary.extract(
             traceback.walk_tb(exc_info[2]))
     exc_cause = traceback.TracebackException(Exception, cause, None)
     self.assertEqual(exc_cause, exc.__cause__)
     self.assertEqual(exc_context, exc.__context__)
     if hasattr(exc_info[1], '__suppress_context__'):
         self.assertEqual(True, exc.__suppress_context__)
     self.assertEqual(expected_stack, exc.stack)
     self.assertEqual(exc_info[0], exc.exc_type)
     self.assertEqual(str(exc_info[1]), str(exc))
 def test_cause(self):
     try:
         try:
             1/0
         finally:
             exc_info_context = sys.exc_info()
             exc_context = traceback.TracebackException(*exc_info_context)
             cause = Exception("cause")
             raise_from(Exception("uh ok"), cause)
     except Exception:
         exc_info = sys.exc_info()
         exc = traceback.TracebackException(*exc_info)
         expected_stack = traceback.StackSummary.extract(
             traceback.walk_tb(exc_info[2]))
     exc_cause = traceback.TracebackException(Exception, cause, None)
     self.assertEqual(exc_cause, exc.__cause__)
     self.assertEqual(exc_context, exc.__context__)
     if hasattr(exc_info[1], '__suppress_context__'):
         self.assertEqual(True, exc.__suppress_context__)
     self.assertEqual(expected_stack, exc.stack)
     self.assertEqual(exc_info[0], exc.exc_type)
     self.assertEqual(str(exc_info[1]), str(exc))