mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
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).
This commit is contained in:
parent
8198f5d58e
commit
64e039af02
1 changed files with 11 additions and 1 deletions
|
@ -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"),
|
||||
))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue