Merge pull request #1624 from blueyed/getexecutable-skip-non-zero-returncode

tests: getexecutable: call `--version` on all Pythons
This commit is contained in:
Bruno Oliveira 2016-06-21 12:51:48 -03:00 committed by GitHub
commit 406355fd10
1 changed files with 7 additions and 4 deletions

View File

@ -123,15 +123,18 @@ def getexecutable(name, cache={}):
except KeyError: except KeyError:
executable = py.path.local.sysfind(name) executable = py.path.local.sysfind(name)
if executable: if executable:
import subprocess
popen = subprocess.Popen([str(executable), "--version"],
universal_newlines=True, stderr=subprocess.PIPE)
out, err = popen.communicate()
if name == "jython": if name == "jython":
import subprocess
popen = subprocess.Popen([str(executable), "--version"],
universal_newlines=True, stderr=subprocess.PIPE)
out, err = popen.communicate()
if not err or "2.5" not in err: if not err or "2.5" not in err:
executable = None executable = None
if "2.5.2" in err: if "2.5.2" in err:
executable = None # http://bugs.jython.org/issue1790 executable = None # http://bugs.jython.org/issue1790
elif popen.returncode != 0:
# Handle pyenv's 127.
executable = None
cache[name] = executable cache[name] = executable
return executable return executable