diff options
-rw-r--r-- | Doc/library/test.rst | 5 | ||||
-rw-r--r-- | Lib/test/support/__init__.py | 11 | ||||
-rw-r--r-- | Lib/test/test_sax.py | 3 | ||||
-rw-r--r-- | Lib/test/test_unicode_file.py | 5 |
4 files changed, 10 insertions, 14 deletions
diff --git a/Doc/library/test.rst b/Doc/library/test.rst index 7bee6e8..7580fb5 100644 --- a/Doc/library/test.rst +++ b/Doc/library/test.rst @@ -263,11 +263,6 @@ The :mod:`test.support` module defines the following constants: Set to a non-ASCII name for a temporary file. -.. data:: TESTFN_ENCODING - - Set to :func:`sys.getfilesystemencoding`. - - .. data:: TESTFN_UNENCODABLE Set to a filename (str type) that should not be able to be encoded by file diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 4b87a0c..bb905bd 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -785,7 +785,6 @@ if sys.platform == 'darwin': # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html import unicodedata TESTFN_UNICODE = unicodedata.normalize('NFD', TESTFN_UNICODE) -TESTFN_ENCODING = sys.getfilesystemencoding() # TESTFN_UNENCODABLE is a filename (str type) that should *not* be able to be # encoded by the filesystem encoding (in strict mode). It can be None if we @@ -798,23 +797,23 @@ if os.name == 'nt': # probability that the whole name is encodable to MBCS (issue #9819) TESTFN_UNENCODABLE = TESTFN + "-\u5171\u0141\u2661\u0363\uDC80" try: - TESTFN_UNENCODABLE.encode(TESTFN_ENCODING) + TESTFN_UNENCODABLE.encode(sys.getfilesystemencoding()) except UnicodeEncodeError: pass else: print('WARNING: The filename %r CAN be encoded by the filesystem encoding (%s). ' 'Unicode filename tests may not be effective' - % (TESTFN_UNENCODABLE, TESTFN_ENCODING)) + % (TESTFN_UNENCODABLE, sys.getfilesystemencoding())) TESTFN_UNENCODABLE = None # Mac OS X denies unencodable filenames (invalid utf-8) elif sys.platform != 'darwin': try: # ascii and utf-8 cannot encode the byte 0xff - b'\xff'.decode(TESTFN_ENCODING) + b'\xff'.decode(sys.getfilesystemencoding()) except UnicodeDecodeError: # 0xff will be encoded using the surrogate character u+DCFF TESTFN_UNENCODABLE = TESTFN \ - + b'-\xff'.decode(TESTFN_ENCODING, 'surrogateescape') + + b'-\xff'.decode(sys.getfilesystemencoding(), 'surrogateescape') else: # File system encoding (eg. ISO-8859-* encodings) can encode # the byte 0xff. Skip some unicode filename tests. @@ -845,7 +844,7 @@ for name in ( b'\x81\x98', ): try: - name.decode(TESTFN_ENCODING) + name.decode(sys.getfilesystemencoding()) except UnicodeDecodeError: TESTFN_UNDECODABLE = os.fsencode(TESTFN) + name break diff --git a/Lib/test/test_sax.py b/Lib/test/test_sax.py index ce3a422..bc77103 100644 --- a/Lib/test/test_sax.py +++ b/Lib/test/test_sax.py @@ -19,6 +19,7 @@ from io import BytesIO, StringIO import codecs import os.path import shutil +import sys from urllib.error import URLError import urllib.request from test import support @@ -35,7 +36,7 @@ except UnicodeEncodeError: supports_nonascii_filenames = True if not os.path.supports_unicode_filenames: try: - support.TESTFN_UNICODE.encode(support.TESTFN_ENCODING) + support.TESTFN_UNICODE.encode(sys.getfilesystemencoding()) except (UnicodeError, TypeError): # Either the file system encoding is None, or the file name # cannot be encoded in the file system encoding. diff --git a/Lib/test/test_unicode_file.py b/Lib/test/test_unicode_file.py index b16e4c5..ed1f6ce 100644 --- a/Lib/test/test_unicode_file.py +++ b/Lib/test/test_unicode_file.py @@ -2,15 +2,16 @@ # We don't test many operations on files other than # that their names can be used with Unicode characters. import os, glob, time, shutil +import sys import unicodedata import unittest from test.support import (run_unittest, rmtree, change_cwd, - TESTFN_ENCODING, TESTFN_UNICODE, TESTFN_UNENCODABLE, create_empty_file) + TESTFN_UNICODE, TESTFN_UNENCODABLE, create_empty_file) if not os.path.supports_unicode_filenames: try: - TESTFN_UNICODE.encode(TESTFN_ENCODING) + TESTFN_UNICODE.encode(sys.getfilesystemencoding()) except (UnicodeError, TypeError): # Either the file system encoding is None, or the file name # cannot be encoded in the file system encoding. |