[Python-checkins] gh-98393: Update test_os for bytes-like types (#98487)
vstinner
webhook-mailer at python.org
Wed Nov 2 15:46:07 EDT 2022
https://github.com/python/cpython/commit/f3007ac3702ea22c7dd0abf8692b1504ea3c9f63
commit: f3007ac3702ea22c7dd0abf8692b1504ea3c9f63
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2022-11-02T20:45:58+01:00
summary:
gh-98393: Update test_os for bytes-like types (#98487)
Address Serhiy Storchaka's review.
files:
M Lib/test/test_os.py
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 10dbb2bd15df..cb78e8cb77de 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -3797,8 +3797,6 @@ class Str(str):
else:
encoded = os.fsencode(os_helper.TESTFN)
self.bytes_filenames.append(encoded)
- self.bytes_filenames.append(bytearray(encoded))
- self.bytes_filenames.append(memoryview(encoded))
self.filenames = self.bytes_filenames + self.unicode_filenames
@@ -3810,21 +3808,10 @@ def test_oserror_filename(self):
(self.filenames, os.rmdir,),
(self.filenames, os.stat,),
(self.filenames, os.unlink,),
+ (self.filenames, os.listdir,),
+ (self.filenames, os.rename, "dst"),
+ (self.filenames, os.replace, "dst"),
]
- if sys.platform == "win32":
- funcs.extend((
- (self.bytes_filenames, os.rename, b"dst"),
- (self.bytes_filenames, os.replace, b"dst"),
- (self.unicode_filenames, os.rename, "dst"),
- (self.unicode_filenames, os.replace, "dst"),
- (self.unicode_filenames, os.listdir, ),
- ))
- else:
- funcs.extend((
- (self.filenames, os.listdir,),
- (self.filenames, os.rename, "dst"),
- (self.filenames, os.replace, "dst"),
- ))
if os_helper.can_chmod():
funcs.append((self.filenames, os.chmod, 0o777))
if hasattr(os, "chown"):
@@ -3840,11 +3827,7 @@ def test_oserror_filename(self):
if hasattr(os, "chroot"):
funcs.append((self.filenames, os.chroot,))
if hasattr(os, "link"):
- if sys.platform == "win32":
- funcs.append((self.bytes_filenames, os.link, b"dst"))
- funcs.append((self.unicode_filenames, os.link, "dst"))
- else:
- funcs.append((self.filenames, os.link, "dst"))
+ funcs.append((self.filenames, os.link, "dst"))
if hasattr(os, "listxattr"):
funcs.extend((
(self.filenames, os.listxattr,),
@@ -3857,21 +3840,16 @@ def test_oserror_filename(self):
if hasattr(os, "readlink"):
funcs.append((self.filenames, os.readlink,))
-
for filenames, func, *func_args in funcs:
for name in filenames:
- if not isinstance(name, (str, bytes)):
- with self.assertRaises(TypeError):
- func(name, *func_args)
+ try:
+ func(name, *func_args)
+ except OSError as err:
+ self.assertIs(err.filename, name, str(func))
+ except UnicodeDecodeError:
+ pass
else:
- try:
- func(name, *func_args)
- except OSError as err:
- self.assertIs(err.filename, name, str(func))
- except UnicodeDecodeError:
- pass
- else:
- self.fail("No exception thrown by {}".format(func))
+ self.fail(f"No exception thrown by {func}")
class CPUCountTests(unittest.TestCase):
def test_cpu_count(self):
@@ -4351,7 +4329,7 @@ def test_bytes_like(self):
for cls in bytearray, memoryview:
path_bytes = cls(os.fsencode(self.path))
with self.assertRaises(TypeError):
- list(os.scandir(path_bytes))
+ os.scandir(path_bytes)
@unittest.skipUnless(os.listdir in os.supports_fd,
'fd support for listdir required for this test.')
More information about the Python-checkins
mailing list