summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2012-11-06 23:10:14 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2012-11-06 23:10:14 (GMT)
commit64e039af029fff0edb0a59f8950dc1c64fa8a341 (patch)
tree0df357f3c65a79c7284ffcb85aacff0476b3de5d /Lib
parent8198f5d58e3ff16b6c201ff3e512cea9bed5a3fc (diff)
downloadcpython-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.py12
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"),
))