[Python-checkins] bpo-46425: Fix direct invocation of `test_contextlib` (GH-30681)

serhiy-storchaka webhook-mailer at python.org
Fri Jan 21 02:36:37 EST 2022


https://github.com/python/cpython/commit/22f73bd9f1fc573d5c998f345b66c29f7ca6614d
commit: 22f73bd9f1fc573d5c998f345b66c29f7ca6614d
branch: main
author: Nikita Sobolev <mail at sobolevn.me>
committer: serhiy-storchaka <storchaka at gmail.com>
date: 2022-01-21T09:36:19+02:00
summary:

bpo-46425: Fix direct invocation of `test_contextlib` (GH-30681)

files:
M Lib/test/test_contextlib.py

diff --git a/Lib/test/test_contextlib.py b/Lib/test/test_contextlib.py
index bc8e4e4e2918f..e238548be9e2b 100644
--- a/Lib/test/test_contextlib.py
+++ b/Lib/test/test_contextlib.py
@@ -1117,9 +1117,15 @@ def test_cm_is_reentrant(self):
 
 
 class TestChdir(unittest.TestCase):
+    def make_relative_path(self, *parts):
+        return os.path.join(
+            os.path.dirname(os.path.realpath(__file__)),
+            *parts,
+        )
+
     def test_simple(self):
         old_cwd = os.getcwd()
-        target = os.path.join(os.path.dirname(__file__), 'data')
+        target = self.make_relative_path('data')
         self.assertNotEqual(old_cwd, target)
 
         with chdir(target):
@@ -1128,8 +1134,8 @@ def test_simple(self):
 
     def test_reentrant(self):
         old_cwd = os.getcwd()
-        target1 = os.path.join(os.path.dirname(__file__), 'data')
-        target2 = os.path.join(os.path.dirname(__file__), 'ziptestdata')
+        target1 = self.make_relative_path('data')
+        target2 = self.make_relative_path('ziptestdata')
         self.assertNotIn(old_cwd, (target1, target2))
         chdir1, chdir2 = chdir(target1), chdir(target2)
 
@@ -1145,7 +1151,7 @@ def test_reentrant(self):
 
     def test_exception(self):
         old_cwd = os.getcwd()
-        target = os.path.join(os.path.dirname(__file__), 'data')
+        target = self.make_relative_path('data')
         self.assertNotEqual(old_cwd, target)
 
         try:



More information about the Python-checkins mailing list