summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/coveragetest.py8
-rw-r--r--tests/test_process.py6
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", """\