diff options
Diffstat (limited to 'Lib/test/test_os.py')
-rw-r--r-- | Lib/test/test_os.py | 44 |
1 files changed, 14 insertions, 30 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 033e544..26d544c 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -64,7 +64,7 @@ except ImportError: INT_MAX = PY_SSIZE_T_MAX = sys.maxsize from test.support.script_helper import assert_python_ok -from test.support import unix_shell +from test.support import unix_shell, FakePath root_in_posix = False @@ -94,21 +94,6 @@ def requires_os_func(name): return unittest.skipUnless(hasattr(os, name), 'requires os.%s' % name) -class _PathLike(os.PathLike): - - def __init__(self, path=""): - self.path = path - - def __str__(self): - return str(self.path) - - def __fspath__(self): - if isinstance(self.path, BaseException): - raise self.path - else: - return self.path - - def create_file(filename, content=b'content'): with open(filename, "xb", 0) as fp: fp.write(content) @@ -970,15 +955,14 @@ class WalkTests(unittest.TestCase): dirs.remove('SUB1') self.assertEqual(len(all), 2) - self.assertEqual(all[0], - (str(walk_path), ["SUB2"], ["tmp1"])) + self.assertEqual(all[0], (self.walk_path, ["SUB2"], ["tmp1"])) all[1][-1].sort() all[1][1].sort() self.assertEqual(all[1], self.sub2_tree) def test_file_like_path(self): - self.test_walk_prune(_PathLike(self.walk_path)) + self.test_walk_prune(FakePath(self.walk_path)) def test_walk_bottom_up(self): # Walk bottom-up. @@ -2294,7 +2278,7 @@ class PidTests(unittest.TestCase): def test_waitpid(self): args = [sys.executable, '-c', 'pass'] # Add an implicit test for PyUnicode_FSConverter(). - pid = os.spawnv(os.P_NOWAIT, _PathLike(args[0]), args) + pid = os.spawnv(os.P_NOWAIT, FakePath(args[0]), args) status = os.waitpid(pid, 0) self.assertEqual(status, (pid, 0)) @@ -3140,13 +3124,13 @@ class PathTConverterTests(unittest.TestCase): bytes_fspath = bytes_filename = None else: bytes_filename = support.TESTFN.encode('ascii') - bytes_fspath = _PathLike(bytes_filename) - fd = os.open(_PathLike(str_filename), os.O_WRONLY|os.O_CREAT) + bytes_fspath = FakePath(bytes_filename) + fd = os.open(FakePath(str_filename), os.O_WRONLY|os.O_CREAT) self.addCleanup(support.unlink, support.TESTFN) self.addCleanup(os.close, fd) - int_fspath = _PathLike(fd) - str_fspath = _PathLike(str_filename) + int_fspath = FakePath(fd) + str_fspath = FakePath(str_filename) for name, allow_fd, extra_args, cleanup_fn in self.functions: with self.subTest(name=name): @@ -3519,16 +3503,16 @@ class TestPEP519(unittest.TestCase): def test_fsencode_fsdecode(self): for p in "path/like/object", b"path/like/object": - pathlike = _PathLike(p) + pathlike = FakePath(p) self.assertEqual(p, self.fspath(pathlike)) self.assertEqual(b"path/like/object", os.fsencode(pathlike)) self.assertEqual("path/like/object", os.fsdecode(pathlike)) def test_pathlike(self): - self.assertEqual('#feelthegil', self.fspath(_PathLike('#feelthegil'))) - self.assertTrue(issubclass(_PathLike, os.PathLike)) - self.assertTrue(isinstance(_PathLike(), os.PathLike)) + self.assertEqual('#feelthegil', self.fspath(FakePath('#feelthegil'))) + self.assertTrue(issubclass(FakePath, os.PathLike)) + self.assertTrue(isinstance(FakePath('x'), os.PathLike)) def test_garbage_in_exception_out(self): vapor = type('blah', (), {}) @@ -3540,14 +3524,14 @@ class TestPEP519(unittest.TestCase): def test_bad_pathlike(self): # __fspath__ returns a value other than str or bytes. - self.assertRaises(TypeError, self.fspath, _PathLike(42)) + self.assertRaises(TypeError, self.fspath, FakePath(42)) # __fspath__ attribute that is not callable. c = type('foo', (), {}) c.__fspath__ = 1 self.assertRaises(TypeError, self.fspath, c()) # __fspath__ raises an exception. self.assertRaises(ZeroDivisionError, self.fspath, - _PathLike(ZeroDivisionError())) + FakePath(ZeroDivisionError())) # Only test if the C version is provided, otherwise TestPEP519 already tested # the pure Python implementation. |