]> granicus.if.org Git - python/commitdiff
Prevent test_inspect from keeping alive a ton of frames and local variables by way...
authorAntoine Pitrou <solipsis@pitrou.net>
Sun, 17 Jun 2012 21:18:07 +0000 (23:18 +0200)
committerAntoine Pitrou <solipsis@pitrou.net>
Sun, 17 Jun 2012 21:18:07 +0000 (23:18 +0200)
Should fix some buildbot failures.

Lib/importlib/test/test_locks.py
Lib/test/test_inspect.py

index 35a72d4cadf8a1c377dd4028e9da7715f12ebe7e..7faff490ae5870f50127f30616c6e857dffee75c 100644 (file)
@@ -101,7 +101,7 @@ class LifetimeTests(unittest.TestCase):
 
     def test_all_locks(self):
         support.gc_collect()
-        self.assertEqual(0, len(_bootstrap._module_locks))
+        self.assertEqual(0, len(_bootstrap._module_locks), _bootstrap._module_locks)
 
 
 @support.reap_threads
index d840bbe244af5b7a10bc617eced4ecfbb82a904b..802e1007f816b7fb5ab0441d2a54d4c299cdfef3 100644 (file)
@@ -41,11 +41,6 @@ def revise(filename, *args):
 
 import builtins
 
-try:
-    1/0
-except:
-    tb = sys.exc_info()[2]
-
 git = mod.StupidGit()
 
 class IsTestBase(unittest.TestCase):
@@ -79,23 +74,31 @@ class TestPredicates(IsTestBase):
 
 
     def test_excluding_predicates(self):
+        global tb
         self.istest(inspect.isbuiltin, 'sys.exit')
         self.istest(inspect.isbuiltin, '[].append')
         self.istest(inspect.iscode, 'mod.spam.__code__')
-        self.istest(inspect.isframe, 'tb.tb_frame')
+        try:
+            1/0
+        except:
+            tb = sys.exc_info()[2]
+            self.istest(inspect.isframe, 'tb.tb_frame')
+            self.istest(inspect.istraceback, 'tb')
+            if hasattr(types, 'GetSetDescriptorType'):
+                self.istest(inspect.isgetsetdescriptor,
+                            'type(tb.tb_frame).f_locals')
+            else:
+                self.assertFalse(inspect.isgetsetdescriptor(type(tb.tb_frame).f_locals))
+        finally:
+            # Clear traceback and all the frames and local variables hanging to it.
+            tb = None
         self.istest(inspect.isfunction, 'mod.spam')
         self.istest(inspect.isfunction, 'mod.StupidGit.abuse')
         self.istest(inspect.ismethod, 'git.argue')
         self.istest(inspect.ismodule, 'mod')
-        self.istest(inspect.istraceback, 'tb')
         self.istest(inspect.isdatadescriptor, 'collections.defaultdict.default_factory')
         self.istest(inspect.isgenerator, '(x for x in range(2))')
         self.istest(inspect.isgeneratorfunction, 'generator_function_example')
-        if hasattr(types, 'GetSetDescriptorType'):
-            self.istest(inspect.isgetsetdescriptor,
-                        'type(tb.tb_frame).f_locals')
-        else:
-            self.assertFalse(inspect.isgetsetdescriptor(type(tb.tb_frame).f_locals))
         if hasattr(types, 'MemberDescriptorType'):
             self.istest(inspect.ismemberdescriptor, 'datetime.timedelta.days')
         else: