]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #16218: Fix test for issue again
authorAndrew Svetlov <andrew.svetlov@gmail.com>
Mon, 5 Nov 2012 06:20:15 +0000 (08:20 +0200)
committerAndrew Svetlov <andrew.svetlov@gmail.com>
Mon, 5 Nov 2012 06:20:15 +0000 (08:20 +0200)
Lib/test/test_cmd_line_script.py

index 86dfc733c11857ec560768204544b89391757047..750cf440ebb961d5bb7280786f40fbf14c661b08 100644 (file)
@@ -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():