import shutil import subprocess import sys import unittest class LocalToolchainTest(unittest.TestCase): maxDiff = None def test_python_from_path_used(self): shell_path = shutil.which("python3") # We call the interpreter and print its executable because of # things like pyenv: they install a shim that re-execs python. # The shim is e.g. /home/user/.pyenv/shims/python3, which then # runs e.g. /usr/bin/python3 expected = subprocess.check_output( [shell_path, "-c", "import sys; print(sys.executable)"], text=True, ) expected = expected.strip() self.assertEqual(expected, sys.executable) if __name__ == "__main__": unittest.main()