mirror of
https://github.com/python/cpython.git
synced 2026-01-29 06:06:01 +00:00
TESTFN_UNDECODABLE, TESTFN_NONASCII of test.support from Python 3.4. Backport tests on non-ASCII paths.
This commit is contained in:
commit
269b3ce400
@ -710,6 +710,9 @@ for name in (
|
||||
b'\xae\xd5'
|
||||
# undecodable from UTF-8 (UNIX and Mac OS X)
|
||||
b'\xed\xb2\x80', b'\xed\xb4\x80',
|
||||
# undecodable from shift_jis, cp869, cp874, cp932, cp1250, cp1251, cp1252,
|
||||
# cp1253, cp1254, cp1255, cp1257, cp1258
|
||||
b'\x81\x98',
|
||||
):
|
||||
try:
|
||||
name.decode(TESTFN_ENCODING)
|
||||
|
||||
@ -367,11 +367,10 @@ class CmdLineTest(unittest.TestCase):
|
||||
# Mac OS X denies the creation of a file with an invalid UTF-8 name.
|
||||
# Windows allows to create a name with an arbitrary bytes name, but
|
||||
# Python cannot a undecodable bytes argument to a subprocess.
|
||||
#if (support.TESTFN_UNDECODABLE
|
||||
#and sys.platform not in ('win32', 'darwin')):
|
||||
# name = os.fsdecode(support.TESTFN_UNDECODABLE)
|
||||
#elif support.TESTFN_NONASCII:
|
||||
if support.TESTFN_NONASCII:
|
||||
if (support.TESTFN_UNDECODABLE
|
||||
and sys.platform not in ('win32', 'darwin')):
|
||||
name = os.fsdecode(support.TESTFN_UNDECODABLE)
|
||||
elif support.TESTFN_NONASCII:
|
||||
name = support.TESTFN_NONASCII
|
||||
else:
|
||||
self.skipTest("need support.TESTFN_NONASCII")
|
||||
|
||||
@ -308,17 +308,18 @@ class CommonTest(GenericTest):
|
||||
for path in ('', 'fuu', 'f\xf9\xf9', '/fuu', 'U:\\'):
|
||||
self.assertIsInstance(abspath(path), str)
|
||||
|
||||
@unittest.skipIf(sys.platform == 'darwin',
|
||||
"Mac OS X denies the creation of a directory with an invalid utf8 name")
|
||||
def test_nonascii_abspath(self):
|
||||
name = b'\xe7w\xf0'
|
||||
if sys.platform == 'win32':
|
||||
try:
|
||||
os.fsdecode(name)
|
||||
except UnicodeDecodeError:
|
||||
self.skipTest("the filename %a is not decodable "
|
||||
"from the ANSI code page %s"
|
||||
% (name, sys.getfilesystemencoding()))
|
||||
if (support.TESTFN_UNDECODABLE
|
||||
# Mac OS X denies the creation of a directory with an invalid
|
||||
# UTF-8 name. Windows allows to create a directory with an
|
||||
# arbitrary bytes name, but fails to enter this directory
|
||||
# (when the bytes name is used).
|
||||
and sys.platform not in ('win32', 'darwin')):
|
||||
name = support.TESTFN_UNDECODABLE
|
||||
elif support.TESTFN_NONASCII:
|
||||
name = support.TESTFN_NONASCII
|
||||
else:
|
||||
self.skipTest("need support.TESTFN_NONASCII")
|
||||
|
||||
# Test non-ASCII, non-UTF8 bytes in the path.
|
||||
with warnings.catch_warnings():
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user