[Python-checkins] bpo-40275: Remove test.support.TESTFN_ENCODING (GH-20482)

Hai Shi webhook-mailer at python.org
Thu May 28 10:24:44 EDT 2020


https://github.com/python/cpython/commit/24bddc1b3b58f6899b2d412e51b37f68536e4fe2
commit: 24bddc1b3b58f6899b2d412e51b37f68536e4fe2
branch: master
author: Hai Shi <shihai1992 at gmail.com>
committer: GitHub <noreply at github.com>
date: 2020-05-28T16:24:39+02:00
summary:

 bpo-40275: Remove test.support.TESTFN_ENCODING (GH-20482)

Replace test.support.TESTFN_ENCODING with sys.getfilesystemencoding().

files:
M Doc/library/test.rst
M Lib/test/support/__init__.py
M Lib/test/test_sax.py
M Lib/test/test_unicode_file.py

diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index 7bee6e8031a05..7580fb5e9b174 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 4b87a0c574c1b..bb905bd895de8 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -785,7 +785,6 @@ def requires_lzma(reason='requires lzma'):
     # 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 @@ def requires_lzma(reason='requires lzma'):
         # 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 @@ def requires_lzma(reason='requires lzma'):
     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 ce3a422b502a0..bc77103641b6f 100644
--- a/Lib/test/test_sax.py
+++ b/Lib/test/test_sax.py
@@ -19,6 +19,7 @@
 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 @@
 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 b16e4c5b3bd61..ed1f6cecc7856 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.



More information about the Python-checkins mailing list