mirror of
https://github.com/python/cpython.git
synced 2026-01-02 13:33:44 +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
3 changed files with 18 additions and 15 deletions
|
|
@ -710,6 +710,9 @@ def _is_ipv6_enabled():
|
|||
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 @@ def test_non_ascii(self):
|
|||
# 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 @@ def test_abspath_issue3426(self):
|
|||
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…
Add table
Add a link
Reference in a new issue