https://github.com/python/cpython/commit/0152dc4ff5534fa2948b95262e70ff6b202b9b99
commit: 0152dc4ff5534fa2948b95262e70ff6b202b9b99
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2024-05-16T10:25:10+03:00
summary:
gh-119064: Use os_helper.FakePath instead of pathlib.Path in tests (GH-119065)
files:
M Lib/test/_test_multiprocessing.py
M Lib/test/test_asyncio/test_unix_events.py
M Lib/test/test_compileall.py
M Lib/test/test_configparser.py
M Lib/test/test_ctypes/test_loading.py
M Lib/test/test_fileinput.py
M Lib/test/test_http_cookiejar.py
M Lib/test/test_logging.py
M Lib/test/test_mimetypes.py
M Lib/test/test_pkgutil.py
M Lib/test/test_runpy.py
M Lib/test/test_shutil.py
M Lib/test/test_subprocess.py
M Lib/test/test_tarfile.py
M Lib/test/test_tempfile.py
M Lib/test/test_venv.py
M Lib/test/test_winsound.py
M Lib/test/test_zipapp.py
M Lib/test/test_zipfile/_path/test_path.py
diff --git a/Lib/test/_test_multiprocessing.py
b/Lib/test/_test_multiprocessing.py
index 46afdfca331a23..f126b6745dc83b 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -22,7 +22,6 @@
import subprocess
import struct
import operator
-import pathlib
import pickle
import weakref
import warnings
@@ -324,8 +323,9 @@ def test_set_executable(self):
self.skipTest(f'test not appropriate for {self.TYPE}')
paths = [
sys.executable, # str
- sys.executable.encode(), # bytes
- pathlib.Path(sys.executable) # os.PathLike
+ os.fsencode(sys.executable), # bytes
+ os_helper.FakePath(sys.executable), # os.PathLike
+ os_helper.FakePath(os.fsencode(sys.executable)), # os.PathLike
bytes
]
for path in paths:
self.set_executable(path)
diff --git a/Lib/test/test_asyncio/test_unix_events.py
b/Lib/test/test_asyncio/test_unix_events.py
index 59ef9f5f58cabc..9452213c685851 100644
--- a/Lib/test/test_asyncio/test_unix_events.py
+++ b/Lib/test/test_asyncio/test_unix_events.py
@@ -6,7 +6,6 @@
import multiprocessing
from multiprocessing.util import _cleanup_tests as
multiprocessing_cleanup_tests
import os
-import pathlib
import signal
import socket
import stat
@@ -304,20 +303,20 @@ def test_create_unix_server_existing_path_sock(self):
self.loop.run_until_complete(srv.wait_closed())
@socket_helper.skip_unless_bind_unix_socket
- def test_create_unix_server_pathlib(self):
+ def test_create_unix_server_pathlike(self):
with test_utils.unix_socket_path() as path:
- path = pathlib.Path(path)
+ path = os_helper.FakePath(path)
srv_coro = self.loop.create_unix_server(lambda: None, path)
srv = self.loop.run_until_complete(srv_coro)
srv.close()
self.loop.run_until_complete(srv.wait_closed())
- def test_create_unix_connection_pathlib(self):
+ def test_create_unix_connection_pathlike(self):
with test_utils.unix_socket_path() as path:
- path = pathlib.Path(path)
+ path = os_helper.FakePath(path)
coro = self.loop.create_unix_connection(lambda: None, path)
with self.assertRaises(FileNotFoundError):
- # If pathlib.Path wasn't supported, the exception would be
+ # If path-like object weren't supported, the exception would be
# different.
self.loop.run_until_complete(coro)
diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
index bf0fd051672db4..812ff5e7f84461 100644
--- a/Lib/test/test_compileall.py
+++ b/Lib/test/test_compileall.py
@@ -4,7 +4,6 @@
import importlib.util
import io
import os
-import pathlib
import py_compile
import shutil
import struct
@@ -31,6 +30,7 @@
from test.support import script_helper
from test.test_py_compile import without_source_date_epoch
from test.test_py_compile import SourceDateEpochTestMeta
+from test.support.os_helper import FakePath
def get_pyc(script, opt):
@@ -156,28 +156,28 @@ def test_compile_file_pathlike(self):
self.assertFalse(os.path.isfile(self.bc_path))
# we should also test the output
with support.captured_stdout() as stdout:
-
self.assertTrue(compileall.compile_file(pathlib.Path(self.source_path)))
+
self.assertTrue(compileall.compile_file(FakePath(self.source_path)))
self.assertRegex(stdout.getvalue(), r'Compiling
([^WindowsPath|PosixPath].*)')
self.assertTrue(os.path.isfile(self.bc_path))
def test_compile_file_pathlike_ddir(self):
self.assertFalse(os.path.isfile(self.bc_path))
- self.assertTrue(compileall.compile_file(pathlib.Path(self.source_path),
- ddir=pathlib.Path('ddir_path'),
+ self.assertTrue(compileall.compile_file(FakePath(self.source_path),
+ ddir=FakePath('ddir_path'),
quiet=2))
self.assertTrue(os.path.isfile(self.bc_path))
def test_compile_file_pathlike_stripdir(self):
self.assertFalse(os.path.isfile(self.bc_path))
- self.assertTrue(compileall.compile_file(pathlib.Path(self.source_path),
-
stripdir=pathlib.Path('stripdir_path'),
+ self.assertTrue(compileall.compile_file(FakePath(self.source_path),
+
stripdir=FakePath('stripdir_path'),
quiet=2))
self.assertTrue(os.path.isfile(self.bc_path))
def test_compile_file_pathlike_prependdir(self):
self.assertFalse(os.path.isfile(self.bc_path))
- self.assertTrue(compileall.compile_file(pathlib.Path(self.source_path),
-
prependdir=pathlib.Path('prependdir_path'),
+ self.assertTrue(compileall.compile_file(FakePath(self.source_path),
+
prependdir=FakePath('prependdir_path'),
quiet=2))
self.assertTrue(os.path.isfile(self.bc_path))
@@ -228,22 +228,22 @@ def test_optimize(self):
def test_compile_dir_pathlike(self):
self.assertFalse(os.path.isfile(self.bc_path))
with support.captured_stdout() as stdout:
- compileall.compile_dir(pathlib.Path(self.directory))
+ compileall.compile_dir(FakePath(self.directory))
line = stdout.getvalue().splitlines()[0]
self.assertRegex(line, r'Listing ([^WindowsPath|PosixPath].*)')
self.assertTrue(os.path.isfile(self.bc_path))
def test_compile_dir_pathlike_stripdir(self):
self.assertFalse(os.path.isfile(self.bc_path))
- self.assertTrue(compileall.compile_dir(pathlib.Path(self.directory),
-
stripdir=pathlib.Path('stripdir_path'),
+ self.assertTrue(compileall.compile_dir(FakePath(self.directory),
+
stripdir=FakePath('stripdir_path'),
quiet=2))
self.assertTrue(os.path.isfile(self.bc_path))
def test_compile_dir_pathlike_prependdir(self):
self.assertFalse(os.path.isfile(self.bc_path))
- self.assertTrue(compileall.compile_dir(pathlib.Path(self.directory),
-
prependdir=pathlib.Path('prependdir_path'),
+ self.assertTrue(compileall.compile_dir(FakePath(self.directory),
+
prependdir=FakePath('prependdir_path'),
quiet=2))
self.assertTrue(os.path.isfile(self.bc_path))
diff --git a/Lib/test/test_configparser.py b/Lib/test/test_configparser.py
index fe09472db89cd2..a934e493a76391 100644
--- a/Lib/test/test_configparser.py
+++ b/Lib/test/test_configparser.py
@@ -2,7 +2,6 @@
import configparser
import io
import os
-import pathlib
import textwrap
import unittest
@@ -745,12 +744,12 @@ def test_read_returns_file_list(self):
self.assertEqual(cf.get("Foo Bar", "foo"), "newbar")
# check when we pass only a Path object:
cf = self.newconfig()
- parsed_files = cf.read(pathlib.Path(file1), encoding="utf-8")
+ parsed_files = cf.read(os_helper.FakePath(file1), encoding="utf-8")
self.assertEqual(parsed_files, [file1])
self.assertEqual(cf.get("Foo Bar", "foo"), "newbar")
# check when we passed both a filename and a Path object:
cf = self.newconfig()
- parsed_files = cf.read([pathlib.Path(file1), file1], encoding="utf-8")
+ parsed_files = cf.read([os_helper.FakePath(file1), file1],
encoding="utf-8")
self.assertEqual(parsed_files, [file1, file1])
self.assertEqual(cf.get("Foo Bar", "foo"), "newbar")
# check when we pass only missing files:
diff --git a/Lib/test/test_ctypes/test_loading.py
b/Lib/test/test_ctypes/test_loading.py
index b25e81b65cf103..fc1eecb77e17e3 100644
--- a/Lib/test/test_ctypes/test_loading.py
+++ b/Lib/test/test_ctypes/test_loading.py
@@ -42,10 +42,7 @@ def test_load(self):
self.skipTest('could not find library to load')
CDLL(test_lib)
CDLL(os.path.basename(test_lib))
- class CTypesTestPathLikeCls:
- def __fspath__(self):
- return test_lib
- CDLL(CTypesTestPathLikeCls())
+ CDLL(os_helper.FakePath(test_lib))
self.assertRaises(OSError, CDLL, self.unknowndll)
def test_load_version(self):
diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py
index b3ad41d2588c4c..b340ef7ed1621c 100644
--- a/Lib/test/test_fileinput.py
+++ b/Lib/test/test_fileinput.py
@@ -23,10 +23,9 @@
from io import BytesIO, StringIO
from fileinput import FileInput, hook_encoded
-from pathlib import Path
from test.support import verbose
-from test.support.os_helper import TESTFN
+from test.support.os_helper import TESTFN, FakePath
from test.support.os_helper import unlink as safe_unlink
from test.support import os_helper
from test import support
@@ -478,23 +477,23 @@ def test_iteration_buffering(self):
self.assertRaises(StopIteration, next, fi)
self.assertEqual(src.linesread, [])
- def test_pathlib_file(self):
- t1 = Path(self.writeTmp("Pathlib file."))
+ def test_pathlike_file(self):
+ t1 = FakePath(self.writeTmp("Path-like file."))
with FileInput(t1, encoding="utf-8") as fi:
line = fi.readline()
- self.assertEqual(line, 'Pathlib file.')
+ self.assertEqual(line, 'Path-like file.')
self.assertEqual(fi.lineno(), 1)
self.assertEqual(fi.filelineno(), 1)
self.assertEqual(fi.filename(), os.fspath(t1))
- def test_pathlib_file_inplace(self):
- t1 = Path(self.writeTmp('Pathlib file.'))
+ def test_pathlike_file_inplace(self):
+ t1 = FakePath(self.writeTmp('Path-like file.'))
with FileInput(t1, inplace=True, encoding="utf-8") as fi:
line = fi.readline()
- self.assertEqual(line, 'Pathlib file.')
+ self.assertEqual(line, 'Path-like file.')
print('Modified %s' % line)
with open(t1, encoding="utf-8") as f:
- self.assertEqual(f.read(), 'Modified Pathlib file.\n')
+ self.assertEqual(f.read(), 'Modified Path-like file.\n')
class MockFileInput:
diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py
index 97e9c82cde9ec4..dbf9ce10f76f91 100644
--- a/Lib/test/test_http_cookiejar.py
+++ b/Lib/test/test_http_cookiejar.py
@@ -9,7 +9,6 @@
import time
import unittest
import urllib.request
-import pathlib
from http.cookiejar import (time2isoz, http2time, iso2time, time2netscape,
parse_ns_headers, join_header_words, split_header_words, Cookie,
@@ -337,9 +336,9 @@ def test_constructor_with_str(self):
self.assertEqual(c.filename, filename)
def test_constructor_with_path_like(self):
- filename = pathlib.Path(os_helper.TESTFN)
- c = LWPCookieJar(filename)
- self.assertEqual(c.filename, os.fspath(filename))
+ filename = os_helper.TESTFN
+ c = LWPCookieJar(os_helper.FakePath(filename))
+ self.assertEqual(c.filename, filename)
def test_constructor_with_none(self):
c = LWPCookieJar(None)
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index e651d96f100a83..97d7c9fb167ec1 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -657,15 +657,15 @@ def test_builtin_handlers(self):
self.assertFalse(h.shouldFlush(r))
h.close()
- def test_path_objects(self):
+ def test_pathlike_objects(self):
"""
- Test that Path objects are accepted as filename arguments to handlers.
+ Test that path-like objects are accepted as filename arguments to
handlers.
See Issue #27493.
"""
fn = make_temp_file()
os.unlink(fn)
- pfn = pathlib.Path(fn)
+ pfn = os_helper.FakePath(fn)
cases = (
(logging.FileHandler, (pfn, 'w')),
(logging.handlers.RotatingFileHandler, (pfn, 'a')),
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index 2e0ad0606ae9c2..58f6a4dfae08ba 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -1,7 +1,6 @@
import io
import mimetypes
import os
-import pathlib
import sys
import unittest.mock
@@ -83,11 +82,19 @@ def test_read_mime_types(self):
with os_helper.temp_dir() as directory:
data = "x-application/x-unittest pyunit\n"
- file = pathlib.Path(directory, "sample.mimetype")
- file.write_text(data, encoding="utf-8")
+ file = os.path.join(directory, "sample.mimetype")
+ with open(file, 'w', encoding="utf-8") as f:
+ f.write(data)
mime_dict = mimetypes.read_mime_types(file)
eq(mime_dict[".pyunit"], "x-application/x-unittest")
+ data = "x-application/x-unittest2 pyunit2\n"
+ file = os.path.join(directory, "sample2.mimetype")
+ with open(file, 'w', encoding="utf-8") as f:
+ f.write(data)
+ mime_dict = mimetypes.read_mime_types(os_helper.FakePath(file))
+ eq(mime_dict[".pyunit2"], "x-application/x-unittest2")
+
# bpo-41048: read_mime_types should read the rule file with 'utf-8'
encoding.
# Not with locale encoding. _bootlocale has been imported because
io.open(...)
# uses it.
diff --git a/Lib/test/test_pkgutil.py b/Lib/test/test_pkgutil.py
index e19dce1dbd2583..d095f440a99f63 100644
--- a/Lib/test/test_pkgutil.py
+++ b/Lib/test/test_pkgutil.py
@@ -13,6 +13,7 @@
import zipfile
from test.support.import_helper import DirsOnSysPath
+from test.support.os_helper import FakePath
from test.test_importlib.util import uncache
# Note: pkgutil.walk_packages is currently tested in test_runpy. This is
@@ -121,7 +122,7 @@ def test_issue44061_iter_modules(self):
# make sure iter_modules accepts Path objects
names = []
- for moduleinfo in pkgutil.iter_modules([Path(zip_file)]):
+ for moduleinfo in pkgutil.iter_modules([FakePath(zip_file)]):
self.assertIsInstance(moduleinfo, pkgutil.ModuleInfo)
names.append(moduleinfo.name)
self.assertEqual(names, [pkg])
diff --git a/Lib/test/test_runpy.py b/Lib/test/test_runpy.py
index 9d76764c75be3e..b64383f6546f31 100644
--- a/Lib/test/test_runpy.py
+++ b/Lib/test/test_runpy.py
@@ -15,7 +15,7 @@
from test.support import (infinite_recursion, no_tracing, verbose,
requires_subprocess, requires_resource)
from test.support.import_helper import forget, make_legacy_pyc, unload
-from test.support.os_helper import create_empty_file, temp_dir
+from test.support.os_helper import create_empty_file, temp_dir, FakePath
from test.support.script_helper import make_script, make_zip_script
@@ -657,14 +657,13 @@ def test_basic_script(self):
self._check_script(script_name, "<run_path>", script_name,
script_name, expect_spec=False)
- def test_basic_script_with_path_object(self):
+ def test_basic_script_with_pathlike_object(self):
with temp_dir() as script_dir:
mod_name = 'script'
- script_name = pathlib.Path(self._make_test_script(script_dir,
- mod_name))
- self._check_script(script_name, "<run_path>",
- os.fsdecode(script_name),
- os.fsdecode(script_name),
+ script_name = self._make_test_script(script_dir, mod_name)
+ self._check_script(FakePath(script_name), "<run_path>",
+ script_name,
+ script_name,
expect_spec=False)
def test_basic_script_no_suffix(self):
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 5b0aac67a0adeb..df9e7a660bf29e 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -914,7 +914,7 @@ def _ignore(src, names):
'test.txt')))
dst_dir = join(self.mkdtemp(), 'destination')
- shutil.copytree(pathlib.Path(src_dir), dst_dir, ignore=_ignore)
+ shutil.copytree(FakePath(src_dir), dst_dir, ignore=_ignore)
self.assertTrue(exists(join(dst_dir, 'test_dir', 'subdir',
'test.txt')))
@@ -2107,7 +2107,7 @@ def check_unpack_archive(self, format, **kwargs):
self.check_unpack_archive_with_converter(
format, lambda path: path, **kwargs)
self.check_unpack_archive_with_converter(
- format, pathlib.Path, **kwargs)
+ format, FakePath, **kwargs)
self.check_unpack_archive_with_converter(format, FakePath, **kwargs)
def check_unpack_archive_with_converter(self, format, converter, **kwargs):
@@ -2672,12 +2672,12 @@ def test_move_file_to_dir(self):
def test_move_file_to_dir_pathlike_src(self):
# Move a pathlike file to another location on the same filesystem.
- src = pathlib.Path(self.src_file)
+ src = FakePath(self.src_file)
self._check_move_file(src, self.dst_dir, self.dst_file)
def test_move_file_to_dir_pathlike_dst(self):
# Move a file to another pathlike location on the same filesystem.
- dst = pathlib.Path(self.dst_dir)
+ dst = FakePath(self.dst_dir)
self._check_move_file(self.src_file, dst, self.dst_file)
@mock_rename
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 9ecd8426cb5537..8b69cd03ba7f24 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -25,7 +25,6 @@
import gc
import textwrap
import json
-import pathlib
from test.support.os_helper import FakePath
try:
@@ -1522,9 +1521,6 @@ def test_communicate_epipe(self):
p.communicate(b"x" * 2**20)
def test_repr(self):
- path_cmd = pathlib.Path("my-tool.py")
- pathlib_cls = path_cmd.__class__.__name__
-
cases = [
("ls", True, 123, "<Popen: returncode: 123 args: 'ls'>"),
('a' * 100, True, 0,
@@ -1532,7 +1528,8 @@ def test_repr(self):
(["ls"], False, None, "<Popen: returncode: None args: ['ls']>"),
(["ls", '--my-opts', 'a' * 100], False, None,
"<Popen: returncode: None args: ['ls', '--my-opts',
'aaaaaaaaaaaaaaaaaaaaaaaa...>"),
- (path_cmd, False, 7, f"<Popen: returncode: 7 args:
{pathlib_cls}('my-tool.py')>")
+ (os_helper.FakePath("my-tool.py"), False, 7,
+ "<Popen: returncode: 7 args: <FakePath 'my-tool.py'>>")
]
with unittest.mock.patch.object(subprocess.Popen, '_execute_child'):
for cmd, shell, code, sx in cases:
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index c9c1097963a885..f715940de1d584 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -386,7 +386,7 @@ def test_is_tarfile_erroneous(self):
self.assertFalse(tarfile.is_tarfile(tmpname))
# is_tarfile works on path-like objects
- self.assertFalse(tarfile.is_tarfile(pathlib.Path(tmpname)))
+ self.assertFalse(tarfile.is_tarfile(os_helper.FakePath(tmpname)))
# is_tarfile works on file objects
with open(tmpname, "rb") as fobj:
@@ -400,7 +400,7 @@ def test_is_tarfile_valid(self):
self.assertTrue(tarfile.is_tarfile(self.tarname))
# is_tarfile works on path-like objects
- self.assertTrue(tarfile.is_tarfile(pathlib.Path(self.tarname)))
+ self.assertTrue(tarfile.is_tarfile(os_helper.FakePath(self.tarname)))
# is_tarfile works on file objects
with open(self.tarname, "rb") as fobj:
@@ -576,21 +576,23 @@ def test_bytes_name_attribute(self):
self.assertIsInstance(tar.name, bytes)
self.assertEqual(tar.name, os.path.abspath(fobj.name))
- def test_pathlike_name(self):
- tarname = pathlib.Path(self.tarname)
+ def test_pathlike_name(self, tarname=None):
+ if tarname is None:
+ tarname = self.tarname
+ expected = os.path.abspath(tarname)
+ tarname = os_helper.FakePath(tarname)
with tarfile.open(tarname, mode=self.mode) as tar:
- self.assertIsInstance(tar.name, str)
- self.assertEqual(tar.name, os.path.abspath(os.fspath(tarname)))
+ self.assertEqual(tar.name, expected)
with self.taropen(tarname) as tar:
- self.assertIsInstance(tar.name, str)
- self.assertEqual(tar.name, os.path.abspath(os.fspath(tarname)))
+ self.assertEqual(tar.name, expected)
with tarfile.TarFile.open(tarname, mode=self.mode) as tar:
- self.assertIsInstance(tar.name, str)
- self.assertEqual(tar.name, os.path.abspath(os.fspath(tarname)))
+ self.assertEqual(tar.name, expected)
if self.suffix == '':
with tarfile.TarFile(tarname, mode='r') as tar:
- self.assertIsInstance(tar.name, str)
- self.assertEqual(tar.name, os.path.abspath(os.fspath(tarname)))
+ self.assertEqual(tar.name, expected)
+
+ def test_pathlike_bytes_name(self):
+ self.test_pathlike_name(os.fsencode(self.tarname))
def test_illegal_mode_arg(self):
with open(tmpname, 'wb'):
@@ -761,24 +763,24 @@ def test_deprecation_if_no_filter_passed_to_extract(self):
# check that the stacklevel of the deprecation warning is correct:
self.assertEqual(cm.filename, __file__)
- def test_extractall_pathlike_name(self):
- DIR = pathlib.Path(TEMPDIR) / "extractall"
+ def test_extractall_pathlike_dir(self):
+ DIR = os.path.join(TEMPDIR, "extractall")
with os_helper.temp_dir(DIR), \
tarfile.open(tarname, encoding="iso8859-1") as tar:
directories = [t for t in tar if t.isdir()]
- tar.extractall(DIR, directories, filter='fully_trusted')
+ tar.extractall(os_helper.FakePath(DIR), directories,
filter='fully_trusted')
for tarinfo in directories:
- path = DIR / tarinfo.name
+ path = os.path.join(DIR, tarinfo.name)
self.assertEqual(os.path.getmtime(path), tarinfo.mtime)
- def test_extract_pathlike_name(self):
+ def test_extract_pathlike_dir(self):
dirtype = "ustar/dirtype"
- DIR = pathlib.Path(TEMPDIR) / "extractall"
+ DIR = os.path.join(TEMPDIR, "extractall")
with os_helper.temp_dir(DIR), \
tarfile.open(tarname, encoding="iso8859-1") as tar:
tarinfo = tar.getmember(dirtype)
- tar.extract(tarinfo, path=DIR, filter='fully_trusted')
- extracted = DIR / dirtype
+ tar.extract(tarinfo, path=os_helper.FakePath(DIR),
filter='fully_trusted')
+ extracted = os.path.join(DIR, dirtype)
self.assertEqual(os.path.getmtime(extracted), tarinfo.mtime)
def test_init_close_fobj(self):
@@ -1390,11 +1392,11 @@ def test_ordered_recursion(self):
def test_gettarinfo_pathlike_name(self):
with tarfile.open(tmpname, self.mode) as tar:
- path = pathlib.Path(TEMPDIR) / "file"
+ path = os.path.join(TEMPDIR, "file")
with open(path, "wb") as fobj:
fobj.write(b"aaa")
- tarinfo = tar.gettarinfo(path)
- tarinfo2 = tar.gettarinfo(os.fspath(path))
+ tarinfo = tar.gettarinfo(os_helper.FakePath(path))
+ tarinfo2 = tar.gettarinfo(path)
self.assertIsInstance(tarinfo.name, str)
self.assertEqual(tarinfo.name, tarinfo2.name)
self.assertEqual(tarinfo.size, 3)
@@ -1947,10 +1949,10 @@ def test_create_existing_taropen(self):
self.assertIn("spameggs42", names[0])
def test_create_pathlike_name(self):
- with tarfile.open(pathlib.Path(tmpname), self.mode) as tobj:
+ with tarfile.open(os_helper.FakePath(tmpname), self.mode) as tobj:
self.assertIsInstance(tobj.name, str)
self.assertEqual(tobj.name, os.path.abspath(tmpname))
- tobj.add(pathlib.Path(self.file_path))
+ tobj.add(os_helper.FakePath(self.file_path))
names = tobj.getnames()
self.assertEqual(len(names), 1)
self.assertIn('spameggs42', names[0])
@@ -1961,10 +1963,10 @@ def test_create_pathlike_name(self):
self.assertIn('spameggs42', names[0])
def test_create_taropen_pathlike_name(self):
- with self.taropen(pathlib.Path(tmpname), "x") as tobj:
+ with self.taropen(os_helper.FakePath(tmpname), "x") as tobj:
self.assertIsInstance(tobj.name, str)
self.assertEqual(tobj.name, os.path.abspath(tmpname))
- tobj.add(pathlib.Path(self.file_path))
+ tobj.add(os_helper.FakePath(self.file_path))
names = tobj.getnames()
self.assertEqual(len(names), 1)
self.assertIn('spameggs42', names[0])
diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py
index 19ddeaa169bf93..a5e182cef23dc5 100644
--- a/Lib/test/test_tempfile.py
+++ b/Lib/test/test_tempfile.py
@@ -63,16 +63,10 @@ def test_infer_return_type_multiples_and_none(self):
tempfile._infer_return_type(b'', None, '')
def test_infer_return_type_pathlib(self):
- self.assertIs(str, tempfile._infer_return_type(pathlib.Path('/')))
+ self.assertIs(str,
tempfile._infer_return_type(os_helper.FakePath('/')))
def test_infer_return_type_pathlike(self):
- class Path:
- def __init__(self, path):
- self.path = path
-
- def __fspath__(self):
- return self.path
-
+ Path = os_helper.FakePath
self.assertIs(str, tempfile._infer_return_type(Path('/')))
self.assertIs(bytes, tempfile._infer_return_type(Path(b'/')))
self.assertIs(str, tempfile._infer_return_type('', Path('')))
@@ -443,7 +437,7 @@ def test_choose_directory(self):
dir = tempfile.mkdtemp()
try:
self.do_create(dir=dir).write(b"blat")
- self.do_create(dir=pathlib.Path(dir)).write(b"blat")
+ self.do_create(dir=os_helper.FakePath(dir)).write(b"blat")
finally:
support.gc_collect() # For PyPy or other GCs.
os.rmdir(dir)
@@ -681,7 +675,7 @@ def test_choose_directory(self):
dir = tempfile.mkdtemp()
try:
self.do_create(dir=dir)
- self.do_create(dir=pathlib.Path(dir))
+ self.do_create(dir=os_helper.FakePath(dir))
finally:
os.rmdir(dir)
@@ -782,7 +776,7 @@ def test_choose_directory(self):
dir = tempfile.mkdtemp()
try:
os.rmdir(self.do_create(dir=dir))
- os.rmdir(self.do_create(dir=pathlib.Path(dir)))
+ os.rmdir(self.do_create(dir=os_helper.FakePath(dir)))
finally:
os.rmdir(dir)
diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
index 668642f73e8d9f..1769ed61b94075 100644
--- a/Lib/test/test_venv.py
+++ b/Lib/test/test_venv.py
@@ -24,7 +24,7 @@
requires_venv_with_pip, TEST_HOME_DIR,
requires_resource, copy_python_src_ignore)
from test.support.os_helper import (can_symlink, EnvironmentVarGuard, rmtree,
- TESTFN)
+ TESTFN, FakePath)
import unittest
import venv
from unittest.mock import patch, Mock
@@ -125,12 +125,12 @@ def test_defaults_with_str_path(self):
self.run_with_capture(venv.create, self.env_dir)
self._check_output_of_default_create()
- def test_defaults_with_pathlib_path(self):
+ def test_defaults_with_pathlike(self):
"""
- Test the create function with default arguments and a pathlib.Path
path.
+ Test the create function with default arguments and a path-like path.
"""
rmtree(self.env_dir)
- self.run_with_capture(venv.create, pathlib.Path(self.env_dir))
+ self.run_with_capture(venv.create, FakePath(self.env_dir))
self._check_output_of_default_create()
def _check_output_of_default_create(self):
@@ -572,7 +572,7 @@ def test_pathsep_error(self):
rmtree(self.env_dir)
bad_itempath = self.env_dir + os.pathsep
self.assertRaises(ValueError, venv.create, bad_itempath)
- self.assertRaises(ValueError, venv.create, pathlib.Path(bad_itempath))
+ self.assertRaises(ValueError, venv.create, FakePath(bad_itempath))
@unittest.skipIf(os.name == 'nt', 'not relevant on Windows')
@requireVenvCreate
diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py
index a59d0d24f5db48..870ab7bd41d8ce 100644
--- a/Lib/test/test_winsound.py
+++ b/Lib/test/test_winsound.py
@@ -1,12 +1,13 @@
# Ridiculously simple test of the winsound module for Windows.
import functools
-import pathlib
+import os
import time
import unittest
from test import support
from test.support import import_helper
+from test.support import os_helper
support.requires('audio')
@@ -85,13 +86,6 @@ def test_keyword_args(self):
safe_MessageBeep(type=winsound.MB_OK)
-# A class for testing winsound when the given path resolves
-# to bytes rather than str.
-class BytesPath(pathlib.WindowsPath):
- def __fspath__(self):
- return bytes(super().__fspath__(), 'UTF-8')
-
-
class PlaySoundTest(unittest.TestCase):
def test_errors(self):
@@ -126,7 +120,7 @@ def test_snd_filename(self):
def test_snd_filepath(self):
fn = support.findfile('pluck-pcm8.wav', subdir='audiodata')
- path = pathlib.Path(fn)
+ path = os_helper.FakePath(fn)
safe_PlaySound(path, winsound.SND_FILENAME | winsound.SND_NODEFAULT)
def test_snd_filepath_as_bytes(self):
@@ -134,7 +128,7 @@ def test_snd_filepath_as_bytes(self):
self.assertRaises(
TypeError,
winsound.PlaySound,
- BytesPath(fn),
+ os_helper.FakePath(os.fsencode(fn)),
winsound.SND_FILENAME | winsound.SND_NODEFAULT
)
diff --git a/Lib/test/test_zipapp.py b/Lib/test/test_zipapp.py
index f1c6b2d97621ee..00a5ed6626ddc5 100644
--- a/Lib/test/test_zipapp.py
+++ b/Lib/test/test_zipapp.py
@@ -265,14 +265,15 @@ def test_write_shebang_to_fileobj(self):
zipapp.create_archive(str(target), new_target, interpreter='python2.7')
self.assertTrue(new_target.getvalue().startswith(b'#!python2.7\n'))
- def test_read_from_pathobj(self):
- # Test that we can copy an archive using a pathlib.Path object
+ def test_read_from_pathlike_obj(self):
+ # Test that we can copy an archive using a path-like object
# for the source.
source = self.tmpdir / 'source'
source.mkdir()
(source / '__main__.py').touch()
- target1 = self.tmpdir / 'target1.pyz'
- target2 = self.tmpdir / 'target2.pyz'
+ source = os_helper.FakePath(str(source))
+ target1 = os_helper.FakePath(str(self.tmpdir / 'target1.pyz'))
+ target2 = os_helper.FakePath(str(self.tmpdir / 'target2.pyz'))
zipapp.create_archive(source, target1, interpreter='python')
zipapp.create_archive(target1, target2, interpreter='python2.7')
self.assertEqual(zipapp.get_interpreter(target2), 'python2.7')
diff --git a/Lib/test/test_zipfile/_path/test_path.py
b/Lib/test/test_zipfile/_path/test_path.py
index df5b8c9d8fea40..f6e2c8c289f6fd 100644
--- a/Lib/test/test_zipfile/_path/test_path.py
+++ b/Lib/test/test_zipfile/_path/test_path.py
@@ -13,7 +13,7 @@
from ._test_params import parameterize, Invoked
-from test.support.os_helper import temp_dir
+from test.support.os_helper import temp_dir, FakePath
class jaraco:
@@ -264,13 +264,13 @@ def test_pathlike_construction(self, alpharep):
zipfile.Path should be constructable from a path-like object
"""
zipfile_ondisk = self.zipfile_ondisk(alpharep)
- pathlike = pathlib.Path(str(zipfile_ondisk))
+ pathlike = FakePath(str(zipfile_ondisk))
zipfile.Path(pathlike)
@pass_alpharep
def test_traverse_pathlike(self, alpharep):
root = zipfile.Path(alpharep)
- root / pathlib.Path("a")
+ root / FakePath("a")
@pass_alpharep
def test_parent(self, alpharep):
@@ -539,12 +539,12 @@ def test_inheritance(self, alpharep):
['alpharep', 'path_type', 'subpath'],
itertools.product(
alpharep_generators,
- [str, pathlib.Path],
+ [str, FakePath],
['', 'b/'],
),
)
def test_pickle(self, alpharep, path_type, subpath):
- zipfile_ondisk = path_type(self.zipfile_ondisk(alpharep))
+ zipfile_ondisk = path_type(str(self.zipfile_ondisk(alpharep)))
saved_1 = pickle.dumps(zipfile.Path(zipfile_ondisk, at=subpath))
restored_1 = pickle.loads(saved_1)
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]