]> granicus.if.org Git - python/commitdiff
Issue #14599: Make test_reprlib robust against import cache race
authorBrett Cannon <brett@python.org>
Tue, 17 Apr 2012 00:48:50 +0000 (20:48 -0400)
committerBrett Cannon <brett@python.org>
Tue, 17 Apr 2012 00:48:50 +0000 (20:48 -0400)
conditions when regrtest is run with its -j option.

Lib/test/test_reprlib.py

index e75ba1ce90936b405672dbc55123c183024ae78f..eb2b17a8b515db2a53f48947b26ee605b1f64c2c 100644 (file)
@@ -213,6 +213,8 @@ class LongReprTest(unittest.TestCase):
         # Remember where we are
         self.here = os.getcwd()
         sys.path.insert(0, self.here)
+        # When regrtest is run with its -j option, this command alone is not
+        # enough.
         importlib.invalidate_caches()
 
     def tearDown(self):
@@ -233,6 +235,7 @@ class LongReprTest(unittest.TestCase):
     def test_module(self):
         eq = self.assertEqual
         create_empty_file(os.path.join(self.subpkgname, self.pkgname + '.py'))
+        importlib.invalidate_caches()
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import areallylongpackageandmodulenametotestreprtruncation
         eq(repr(areallylongpackageandmodulenametotestreprtruncation),
            "<module %r from %r>" % (areallylongpackageandmodulenametotestreprtruncation.__name__, areallylongpackageandmodulenametotestreprtruncation.__file__))
@@ -244,6 +247,7 @@ class LongReprTest(unittest.TestCase):
 class foo(object):
     pass
 ''')
+        importlib.invalidate_caches()
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import foo
         eq(repr(foo.foo),
                "<class '%s.foo'>" % foo.__name__)
@@ -258,6 +262,7 @@ class foo(object):
 class bar:
     pass
 ''')
+        importlib.invalidate_caches()
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import bar
         # Module name may be prefixed with "test.", depending on how run.
         self.assertEqual(repr(bar.bar), "<class '%s.bar'>" % bar.__name__)
@@ -267,6 +272,7 @@ class bar:
 class baz:
     pass
 ''')
+        importlib.invalidate_caches()
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import baz
         ibaz = baz.baz()
         self.assertTrue(repr(ibaz).startswith(
@@ -278,6 +284,7 @@ class baz:
 class aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:
     def amethod(self): pass
 ''')
+        importlib.invalidate_caches()
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import qux
         # Unbound methods first
         r = repr(qux.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.amethod)