From 85ca2afe3bdda1896892bbf5963a6afb2e7eb605 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 19 Aug 2010 11:23:47 +0000 Subject: Fix test_sys about fs encoding for Windows and Mac OS X * Check fs encoding value on Windows * Ignore LANG= test on Windows and Mac OS X (fs encoding is hardcoded on these platforms) --- Lib/test/test_sys.py | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 1d927f8..8a9da5b 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -6,6 +6,7 @@ import subprocess import textwrap import warnings import operator +import codecs # count the number of test runs, used to create unique # strings to intern in test_intern() @@ -564,20 +565,25 @@ class SysModuleTest(unittest.TestCase): p.wait() self.assertIn(executable, ["b''", repr(sys.executable.encode("ascii", "backslashreplace"))]) - def test_getfilesystemencoding(self): - import codecs - - def check_fsencoding(fs_encoding, expected=None): - self.assertIsNotNone(fs_encoding) - if sys.platform == 'darwin': - self.assertEqual(fs_encoding, 'utf-8') - codecs.lookup(fs_encoding) - if expected: - self.assertEqual(fs_encoding, expected) + def check_fsencoding(self, fs_encoding, expected=None): + self.assertIsNotNone(fs_encoding) + codecs.lookup(fs_encoding) + if expected: + self.assertEqual(fs_encoding, expected) + def test_getfilesystemencoding(self): fs_encoding = sys.getfilesystemencoding() - check_fsencoding(fs_encoding) + if sys.platform == 'darwin': + expected = 'utf-8' + elif sys.platform == 'win32': + expected = 'mbcs' + else: + expected = None + self.check_fsencoding(fs_encoding) + @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", @@ -599,14 +605,13 @@ class SysModuleTest(unittest.TestCase): del env['PYTHONFSENCODING'] except KeyError: pass - check_fsencoding(get_fsencoding(env), 'ascii') + self.check_fsencoding(get_fsencoding(env), 'ascii') # Filesystem encoding is hardcoded on Windows and Mac OS X - if sys.platform not in ('win32', 'darwin'): - for encoding in ('ascii', 'cp850', 'iso8859-1', 'utf-8'): - env = os.environ.copy() - env['PYTHONFSENCODING'] = encoding - check_fsencoding(get_fsencoding(env), encoding) + for encoding in ('ascii', 'cp850', 'iso8859-1', 'utf-8'): + env = os.environ.copy() + env['PYTHONFSENCODING'] = encoding + self.check_fsencoding(get_fsencoding(env), encoding) def test_setfilesystemencoding(self): -- cgit v0.12