From 7529620a15939a5d4a4405aedb0a8bb17cc35d28 Mon Sep 17 00:00:00 2001 From: Andrew Svetlov Date: Mon, 5 Nov 2012 08:20:15 +0200 Subject: [PATCH] Issue #16218: Fix test for issue again --- Lib/test/test_cmd_line_script.py | 37 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py index 86dfc733c11..750cf440ebb 100644 --- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -363,25 +363,26 @@ class CmdLineTest(unittest.TestCase): self.assertTrue(text[1].startswith(' File ')) self.assertTrue(text[3].startswith('NameError')) - def test_non_utf8(self): + def test_non_ascii(self): # Issue #16218 - with temp_dir() as script_dir: - script_basename = '\u0441\u043a\u0440\u0438\u043f\u0442' - try: - script_basename.encode(sys.getfilesystemencoding()) - except UnicodeEncodeError: - raise unittest.SkipTest("Filesystem doesn't support " - "unicode names") - source = 'print("test output")\n' - script_name = _make_test_script(script_dir, script_basename, source) - if not __debug__: - run_args = ('-' + 'O' * sys.flags.optimize, script_name) - else: - run_args = (script_name,) - rc, out, _ = assert_python_ok(*run_args) - self.assertEqual(0, rc) - expected = ("test output" + os.linesep).encode('ascii') - self.assertEqual(expected, out) + # non-ascii filename encodable to cp1252, cp932, latin1 and utf8 + filename = support.TESTFN + '\xa3.py' + try: + os.fsencode(filename) + except UnicodeEncodeError: + self.skipTest( + "Filesystem encoding %r cannot encode " + "the filename: %a" + % (sys.getfilesystemencoding(), filename)) + source = 'print(ascii(__file__))\n' + script_name = _make_test_script(os.curdir, filename, source) + self.addCleanup(support.unlink, script_name) + rc, stdout, stderr = assert_python_ok(script_name) + self.assertEqual( + ascii(script_name), + stdout.rstrip().decode('ascii'), + 'stdout=%r stderr=%r' % (stdout, stderr)) + self.assertEqual(0, rc) def test_main():