Issue #9992: Remove PYTHONFSENCODING environment variable.

This commit is contained in:
Victor Stinner 2010-10-13 22:02:27 +00:00
parent aa96592a59
commit 8f6b6b0cc3
8 changed files with 8 additions and 100 deletions

View file

@ -1172,36 +1172,6 @@ class FSEncodingTests(unittest.TestCase):
continue
self.assertEquals(os.fsdecode(bytesfn), fn)
def get_output(self, fs_encoding, func):
env = os.environ.copy()
env['PYTHONIOENCODING'] = 'utf-8'
env['PYTHONFSENCODING'] = fs_encoding
code = 'import os; print(%s, end="")' % func
process = subprocess.Popen(
[sys.executable, "-c", code],
stdout=subprocess.PIPE, env=env)
stdout, stderr = process.communicate()
self.assertEqual(process.returncode, 0)
return stdout.decode('utf-8')
@unittest.skipIf(sys.platform in ('win32', 'darwin'),
'PYTHONFSENCODING is ignored on Windows and Mac OS X')
def test_encodings(self):
def check(encoding, bytesfn, unicodefn):
encoded = self.get_output(encoding, 'repr(os.fsencode(%a))' % unicodefn)
self.assertEqual(encoded, repr(bytesfn))
decoded = self.get_output(encoding, 'repr(os.fsdecode(%a))' % bytesfn)
self.assertEqual(decoded, repr(unicodefn))
check('utf-8', b'\xc3\xa9\x80', '\xe9\udc80')
# Raise SkipTest() if sys.executable is not encodable to ascii
support.workaroundIssue8611()
check('ascii', b'abc\xff', 'abc\udcff')
check('iso-8859-15', b'\xef\xa4', '\xef\u20ac')
class PidTests(unittest.TestCase):
@unittest.skipUnless(hasattr(os, 'getppid'), "test needs os.getppid")

View file

@ -885,10 +885,6 @@ class POSIXProcessTestCase(BaseTestCase):
script = "import os; print(ascii(os.getenv(%s)))" % repr(key)
env = os.environ.copy()
env[key] = value
# Force surrogate-escaping of \xFF in the child process;
# otherwise it can be decoded as-is if the default locale
# is latin-1.
env['PYTHONFSENCODING'] = 'ascii'
stdout = subprocess.check_output(
[sys.executable, "-c", script],
env=env)

View file

@ -602,35 +602,6 @@ class SysModuleTest(unittest.TestCase):
expected = None
self.check_fsencoding(fs_encoding, expected)
@unittest.skipIf(sys.platform in ('win32', 'darwin'),
'PYTHONFSENCODING is ignored on Windows and Mac OS X')
def test_pythonfsencoding(self):
def get_fsencoding(env):
output = subprocess.check_output(
[sys.executable, "-c",
"import sys; print(sys.getfilesystemencoding())"],
env=env)
return output.rstrip().decode('ascii')
# Raise SkipTest() if sys.executable is not encodable to ascii
test.support.workaroundIssue8611()
# Use C locale to get ascii for the locale encoding
env = os.environ.copy()
env['LC_ALL'] = 'C'
try:
del env['PYTHONFSENCODING']
except KeyError:
pass
self.check_fsencoding(get_fsencoding(env), 'ascii')
# Filesystem encoding is hardcoded on Windows and Mac OS X
for encoding in ('ascii', 'cp850', 'iso8859-1', 'utf-8'):
env = os.environ.copy()
env['PYTHONFSENCODING'] = encoding
self.check_fsencoding(get_fsencoding(env), encoding)
class SizeofTest(unittest.TestCase):