bpo-32964: Reuse a testing implementation of the path protocol in tests. (GH-5930)
(cherry picked from commit b21d155f57d284aecf9092a9bd24258293965c2f)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py
index 8a1e33b..96b267c 100644
--- a/Lib/test/test_posixpath.py
+++ b/Lib/test/test_posixpath.py
@@ -4,6 +4,7 @@
import warnings
from posixpath import realpath, abspath, dirname, basename
from test import support, test_genericpath
+from test.support import FakePath
try:
import posix
@@ -600,18 +601,9 @@
path = posixpath
- class PathLike:
- def __init__(self, path=''):
- self.path = path
- def __fspath__(self):
- if isinstance(self.path, BaseException):
- raise self.path
- else:
- return self.path
-
def setUp(self):
self.file_name = support.TESTFN.lower()
- self.file_path = self.PathLike(support.TESTFN)
+ self.file_path = FakePath(support.TESTFN)
self.addCleanup(support.unlink, self.file_name)
with open(self.file_name, 'xb', 0) as file:
file.write(b"test_posixpath.PathLikeTests")
@@ -626,7 +618,7 @@
self.assertPathEqual(self.path.isabs)
def test_path_join(self):
- self.assertEqual(self.path.join('a', self.PathLike('b'), 'c'),
+ self.assertEqual(self.path.join('a', FakePath('b'), 'c'),
self.path.join('a', 'b', 'c'))
def test_path_split(self):