def test_none_type(self):
self.assertIsInstance(None, types.NoneType)
+ def test_traceback_and_frame_types(self):
+ try:
+ raise OSError
+ except OSError as e:
+ exc = e
+ self.assertIsInstance(exc.__traceback__, types.TracebackType)
+ self.assertIsInstance(exc.__traceback__.tb_frame, types.FrameType)
+
class UnionTests(unittest.TestCase):
try:
raise TypeError
-except TypeError:
- tb = sys.exc_info()[2]
- TracebackType = type(tb)
- FrameType = type(tb.tb_frame)
- tb = None; del tb
+except TypeError as exc:
+ TracebackType = type(exc.__traceback__)
+ FrameType = type(exc.__traceback__.tb_frame)
# For Jython, the following two types are identical
GetSetDescriptorType = type(FunctionType.__code__)
--- /dev/null
+Add missing test for :class:`types.TracebackType` and
+:class:`types.FrameType`. Calculate them directly from the caught exception
+without calling :func:`sys.exc_info`.