diff -r 6f44f33460cd Lib/test/test_cmd_line_script.py --- a/Lib/test/test_cmd_line_script.py Mon Nov 05 00:00:50 2012 +0100 +++ b/Lib/test/test_cmd_line_script.py Mon Nov 05 00:34:04 2012 +0100 @@ -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():