From: Victor Stinner Date: Mon, 15 Oct 2018 21:50:55 +0000 (+0200) Subject: bpo-34783: Fix test_nonexisting_script() (GH-9896) X-Git-Tag: v3.8.0a1~765 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ea75187c68b374bb839f1172f310b206044bc3e5;p=python 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). --- diff --git a/Lib/test/test_cmd_line_script.py b/Lib/test/test_cmd_line_script.py index 4f5af37544..5ec9bbbb12 100644 --- a/Lib/test/test_cmd_line_script.py +++ b/Lib/test/test_cmd_line_script.py @@ -630,8 +630,6 @@ class CmdLineTest(unittest.TestCase): 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 @@ class CmdLineTest(unittest.TestCase): # is not the actual Python executable file name. script = 'nonexistingscript.py' self.assertFalse(os.path.exists(script)) - # 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, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 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)