]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #25595: Fixed test_deleted_cwd in test_importlib on AIX.
authorSerhiy Storchaka <storchaka@gmail.com>
Wed, 11 Nov 2015 06:26:59 +0000 (08:26 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Wed, 11 Nov 2015 06:26:59 +0000 (08:26 +0200)
Lib/test/test_importlib/import_/test_path.py

index 4359dd9e084b8dbc4579f3f0a517663561008f14..b32a876f8938ee118ffb5c602cd215121db75ccb 100644 (file)
@@ -3,7 +3,6 @@ from .. import util
 importlib = util.import_importlib('importlib')
 machinery = util.import_importlib('importlib.machinery')
 
-import errno
 import os
 import sys
 import tempfile
@@ -160,17 +159,24 @@ class FinderTests:
             got = self.machinery.PathFinder.find_spec('whatever', [path])
         self.assertEqual(got, success_finder.spec)
 
-    @unittest.skipIf(sys.platform == 'win32', "cwd can't not exist on Windows")
     def test_deleted_cwd(self):
         # Issue #22834
-        self.addCleanup(os.chdir, os.getcwd())
+        old_dir = os.getcwd()
+        self.addCleanup(os.chdir, old_dir)
+        new_dir = tempfile.mkdtemp()
         try:
-            with tempfile.TemporaryDirectory() as path:
-                os.chdir(path)
-        except OSError as exc:
-            if exc.errno == errno.EINVAL:
-                self.skipTest("platform does not allow the deletion of the cwd")
+            os.chdir(new_dir)
+            try:
+                os.rmdir(new_dir)
+            except OSError:
+                # EINVAL on Solaris, EBUSY on AIX, ENOTEMPTY on Windows
+                self.skipTest("platform does not allow "
+                              "the deletion of the cwd")
+        except:
+            os.chdir(old_dir)
+            os.rmdir(new_dir)
             raise
+
         with util.import_state(path=['']):
             # Do not want FileNotFoundError raised.
             self.assertIsNone(self.machinery.PathFinder.find_spec('whatever'))