From 908a78dbc249b8f9db5d5404ccd08809ea1964ef Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Thu, 17 Nov 2022 01:43:44 -0500 Subject: tests: make the command tests work when python is not the one in the shebang We test a couple ways of running the meson command, and double check that the debug logs record the meson command used (including python). But when running the meson command as an executable instead of as a python script, we see whichever version `env` in the shebang sees. Fix this by mocking the python command as well. --- run_meson_command_tests.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/run_meson_command_tests.py b/run_meson_command_tests.py index a6a137b..e044af5 100755 --- a/run_meson_command_tests.py +++ b/run_meson_command_tests.py @@ -132,13 +132,17 @@ class CommandTests(unittest.TestCase): bindir = (self.tmpdir / 'bin') bindir.mkdir() (bindir / 'meson').symlink_to(self.src_root / 'meson.py') + (bindir / 'python3').symlink_to(python_command[0]) os.environ['PATH'] = str(bindir) + os.pathsep + os.environ['PATH'] + # use our overridden PATH-compatible python + path_resolved_meson_command = resolved_meson_command.copy() + path_resolved_meson_command[0] = str(bindir / 'python3') # See if it works! meson_py = 'meson' meson_setup = [meson_py, 'setup'] meson_command = meson_setup + self.meson_args stdo = self._run(meson_command + [self.testdir, builddir]) - self.assertMesonCommandIs(stdo.split('\n')[0], resolved_meson_command) + self.assertMesonCommandIs(stdo.split('\n')[0], path_resolved_meson_command) def test_meson_installed(self): # Install meson -- cgit v1.1