diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2012-11-06 23:10:14 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2012-11-06 23:10:14 (GMT) |
commit | 64e039af029fff0edb0a59f8950dc1c64fa8a341 (patch) | |
tree | 0df357f3c65a79c7284ffcb85aacff0476b3de5d /Lib | |
parent | 8198f5d58e3ff16b6c201ff3e512cea9bed5a3fc (diff) | |
download | cpython-64e039af029fff0edb0a59f8950dc1c64fa8a341.zip cpython-64e039af029fff0edb0a59f8950dc1c64fa8a341.tar.gz cpython-64e039af029fff0edb0a59f8950dc1c64fa8a341.tar.bz2 |
Issue #16414: Fix test_os on Windows, don't test os.listdir() with undecodable
With the ANSI code page 932, os.listdir(b'\xe7') return an empty list (instead
of failing), whereas os.listdir(b'\xff') raises a FileNotFoundError.
It looks like a Windows bug: b'\xe7' directory does not exist,
FindFirstFileA(b'\xe7') fails with ERROR_FILE_NOT_FOUND (2), instead of
ERROR_PATH_NOT_FOUND (3).
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_os.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index ee19da3..09d3e75 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -2076,7 +2076,6 @@ class OSErrorTests(unittest.TestCase): funcs = [ (self.filenames, os.chdir,), (self.filenames, os.chmod, 0o777), - (self.filenames, os.listdir,), (self.filenames, os.lstat,), (self.filenames, os.open, os.O_RDONLY), (self.filenames, os.rmdir,), @@ -2089,9 +2088,20 @@ class OSErrorTests(unittest.TestCase): (self.bytes_filenames, os.replace, b"dst"), (self.unicode_filenames, os.rename, "dst"), (self.unicode_filenames, os.replace, "dst"), + # Issue #16414: Don't test undecodable names with listdir() + # because of a Windows bug. + # + # With the ANSI code page 932, os.listdir(b'\xe7') return an + # empty list (instead of failing), whereas os.listdir(b'\xff') + # raises a FileNotFoundError. It looks like a Windows bug: + # b'\xe7' directory does not exist, FindFirstFileA(b'\xe7') + # fails with ERROR_FILE_NOT_FOUND (2), instead of + # ERROR_PATH_NOT_FOUND (3). + (self.unicode_filenames, os.listdir,), )) else: funcs.extend(( + (self.filenames, os.listdir,), (self.filenames, os.rename, "dst"), (self.filenames, os.replace, "dst"), )) |