From: Jason R. Coombs Date: Thu, 8 Mar 2012 15:31:29 +0000 (-0500) Subject: Improve the test case to avoid spurious errors about already existing symlinks. X-Git-Tag: v2.7.4rc1~983 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ea4629afa6953b65a1a8f7223091657b16054aef;p=python Improve the test case to avoid spurious errors about already existing symlinks. --- diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py index 32d6e12143..88786591d3 100644 --- a/Lib/test/test_import.py +++ b/Lib/test/test_import.py @@ -494,7 +494,10 @@ class TestSymbolicallyLinkedPackage(unittest.TestCase): package_name = 'sample' def setUp(self): - if os.path.exists('sample-tagged'): shutil.rmtree('sample-tagged') + if os.path.exists(self.tagged): + shutil.rmtree(self.tagged) + if os.path.exists(self.package_name): + self.remove_symlink(self.package_name) self.orig_sys_path = sys.path[:] symlink = getattr(os, 'symlink', None) or self._symlink_win32 @@ -583,23 +586,30 @@ class TestSymbolicallyLinkedPackage(unittest.TestCase): # regression test for issue6727 @unittest.skipUnless( not hasattr(sys, 'getwindowsversion') - or sys.getwindowsversion() >= (6,0), + or sys.getwindowsversion() >= (6, 0), "Windows Vista or later required") def test_symlinked_dir_importable(self): # make sure sample can only be imported from the current directory. sys.path[:] = ['.'] # and try to import the package - pkg = __import__(self.package_name) + __import__(self.package_name) def tearDown(self): # now cleanup if os.path.exists(self.package_name): - os.rmdir(self.package_name) + self.remove_symlink(self.package_name) if os.path.exists(self.tagged): shutil.rmtree(self.tagged) sys.path[:] = self.orig_sys_path + @staticmethod + def remove_symlink(name): + # On Windows, to remove a directory symlink, one must use rmdir + try: + os.rmdir(name) + except OSError: + os.remove(name) def test_main(verbose=None): run_unittest(ImportTests, PycRewritingTests, PathsTests,