[Python-checkins] bpo-34783: Fix test_nonexisting_script() (GH-9896)

Victor Stinner webhook-mailer at python.org
Mon Oct 15 17:50:58 EDT 2018

commit: ea75187c68b374bb839f1172f310b206044bc3e5
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2018-10-15T23:50:55+02:00

bpo-34783: Fix test_nonexisting_script() (GH-9896)

Fix test_cmd_line_script.test_nonexisting_script(): the test must not
rely on sys.executable, since main.c uses config->program which can
be different than sys.executable in many cases (for example, on macOS
when using the framework).

M Lib/test/test_cmd_line_script.py

diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py
index 4f5af3754418..5ec9bbbb1230 100644
--- a/Lib/test/test_cmd_line_script.py
+++ b/Lib/test/test_cmd_line_script.py
@@ -630,8 +630,6 @@ def test_consistent_sys_path_for_module_execution(self):
             traceback_lines = stderr.decode().splitlines()
             self.assertIn("No module named script_pkg", traceback_lines[-1])
-    @unittest.skipIf(sys.platform == 'darwin' and sys._framework,
-                        "test not valid for macOS framework builds")
     def test_nonexisting_script(self):
         # bpo-34783: "./python script.py" must not crash
         # if the script file doesn't exist.
@@ -639,17 +637,12 @@ def test_nonexisting_script(self):
         #  is not the actual Python executable file name.
         script = 'nonexistingscript.py'
-        # Only test the base name, since the error message can use
-        # a relative path, whereas sys.executable can be an asolution path.
-        program = os.path.basename(sys.executable)
         proc = spawn_python(script, text=True,
         out, err = proc.communicate()
-        # "./python" must be in the error message:
-        # "./python: can't open file (...)"
-        self.assertIn(program, err)
+        self.assertIn(": can't open file ", err)
         self.assertNotEqual(proc.returncode, 0)

More information about the Python-checkins mailing list