]> granicus.if.org Git - python/commitdiff
Issue #15091: Call importlib.invalidate_caches() and reactivate a test
authorBrett Cannon <brett@python.org>
Fri, 20 Jul 2012 18:22:04 +0000 (14:22 -0400)
committerBrett Cannon <brett@python.org>
Fri, 20 Jul 2012 18:22:04 +0000 (14:22 -0400)
of importing a symlinked package.

Lib/test/test_import.py
Misc/NEWS

index 1accd7e30e069beb57c169223edba50920e86e28..e833b1613e5760b4a5757ec1ad3b1eec346a4927 100644 (file)
@@ -704,36 +704,34 @@ class PycacheTests(unittest.TestCase):
 
 class TestSymbolicallyLinkedPackage(unittest.TestCase):
     package_name = 'sample'
+    tagged = package_name + '-tagged'
 
     def setUp(self):
-        if os.path.exists(self.tagged):
-            shutil.rmtree(self.tagged)
-        if os.path.exists(self.package_name):
-            os.remove(self.package_name)
+        test.support.rmtree(self.tagged)
+        test.support.rmtree(self.package_name)
         self.orig_sys_path = sys.path[:]
 
         # create a sample package; imagine you have a package with a tag and
         #  you want to symbolically link it from its untagged name.
         os.mkdir(self.tagged)
+        self.addCleanup(test.support.rmtree, self.tagged)
         init_file = os.path.join(self.tagged, '__init__.py')
-        open(init_file, 'w').close()
-        self.assertEqual(os.path.exists(init_file), True)
+        test.support.create_empty_file(init_file)
+        assert os.path.exists(init_file)
 
         # now create a symlink to the tagged package
         # sample -> sample-tagged
         os.symlink(self.tagged, self.package_name)
+        self.addCleanup(test.support.unlink, self.package_name)
+        importlib.invalidate_caches()
 
         # disabled because os.isdir currently fails (see issue 15093)
         # self.assertEqual(os.path.isdir(self.package_name), True)
 
-        self.assertEqual(
-            os.path.isfile(os.path.join(self.package_name, '__init__.py')),
-            True,
-        )
+        assert os.path.isfile(os.path.join(self.package_name, '__init__.py'))
 
-    @property
-    def tagged(self):
-        return self.package_name + '-tagged'
+    def tearDown(self):
+        sys.path[:] = self.orig_sys_path
 
     # regression test for issue6727
     @unittest.skipUnless(
@@ -741,24 +739,14 @@ class TestSymbolicallyLinkedPackage(unittest.TestCase):
         or sys.getwindowsversion() >= (6, 0),
         "Windows Vista or later required")
     @test.support.skip_unless_symlink
-    @unittest.skipUnless(
-        sys.platform == 'win32',
-        "Test failing on Unix (see issue15091)"
-        )
     def test_symlinked_dir_importable(self):
         # make sure sample can only be imported from the current directory.
         sys.path[:] = ['.']
+        assert os.path.exists(self.package_name)
+        assert os.path.exists(os.path.join(self.package_name, '__init__.py'))
 
-        # and try to import the package
-        __import__(self.package_name)
-
-    def tearDown(self):
-        # now cleanup
-        if os.path.exists(self.package_name):
-            os.remove(self.package_name)
-        if os.path.exists(self.tagged):
-            shutil.rmtree(self.tagged)
-        sys.path[:] = self.orig_sys_path
+        # Try to import the package
+        importlib.import_module(self.package_name)
 
 
 @cpython_only
index cf18a82120a6d84cfb70a918dbbb2c150c3acf4b..a09136d93a620892ee7d6e5f51d4a42c1e5797e7 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -181,7 +181,10 @@ Documentation
 Tests
 -----
 
-- Issue #15230: Adopted a more systematic approach in the runpy tests
+- Issue #15091: Reactivate a test on UNIX which was failing thanks to a
+  forgotten importlib.invalidate_caches() call.
+
+- Issue #15230: Adopted a more systematic approach in the runpy tests.
 
 - Issue #15300: Ensure the temporary test working directories are in the same
   parent folder when running tests in multiprocess mode from a Python build.