diff options
-rw-r--r-- | tests/coveragetest.py | 8 | ||||
-rw-r--r-- | tests/test_process.py | 6 |
2 files changed, 12 insertions, 2 deletions
diff --git a/tests/coveragetest.py b/tests/coveragetest.py index 1cefb6e3..9f7c79c9 100644 --- a/tests/coveragetest.py +++ b/tests/coveragetest.py @@ -452,6 +452,14 @@ class CoverageTest(TestCase): Returns the process' stdout text. """ + # Running Python subprocesses can be tricky. Use the real name of our + # own executable. So "python foo.py" might get executed as + # "python3.3 foo.py". This is important because Python 3.x doesn't + # install as "python", so you might get a Python 2 executable instead + # if you don't use the executable's basename. + if cmd.startswith("python "): + cmd = os.path.basename(sys.executable) + cmd[6:] + _, output = self.run_command_status(cmd) return output diff --git a/tests/test_process.py b/tests/test_process.py index 4409c69e..c49d90a9 100644 --- a/tests/test_process.py +++ b/tests/test_process.py @@ -598,10 +598,12 @@ class ProcessStartupTest(CoverageTest): raise SkipTest( "Can't test subprocess pth file suppport during metacoverage" ) + # Main will run sub.py self.make_file("main.py", """\ - import os - os.system("python sub.py") + import os, os.path, sys + ex = os.path.basename(sys.executable) + os.system(ex + " sub.py") """) # sub.py will write a few lines. self.make_file("sub.py", """\ |