import unittest import weakref class TestCase(unittest.TestCase): def test_traceback_freed(self): ref = [None] class A: pass class Foo(unittest.TestCase): def foo(self): a = A() ref[0] = weakref.ref(a) try: raise IOError except IOError: raise ValueError def test(self): self.assertRaises(ValueError, self.foo) Foo("test").run() self.assertIsNone(ref[0]()) def test_main(): unittest.main() if __name__ == '__main__': test_main()