mirror of
https://github.com/fedora-python/tox-current-env.git
synced 2024-12-25 01:26:13 +01:00
Don't blow up on missing interpreter
Fixes https://github.com/fedora-python/tox-current-env/issues/5
This commit is contained in:
parent
3bca04c780
commit
a1bd7d9cab
@ -46,6 +46,8 @@ def tox_testenv_create(venv, action):
|
|||||||
return True
|
return True
|
||||||
if config.option.current_env:
|
if config.option.current_env:
|
||||||
version_info = venv.envconfig.python_info.version_info
|
version_info = venv.envconfig.python_info.version_info
|
||||||
|
if version_info is None:
|
||||||
|
raise tox.exception.InterpreterNotFound(venv.envconfig.basepython)
|
||||||
if version_info[:2] != sys.version_info[:2]:
|
if version_info[:2] != sys.version_info[:2]:
|
||||||
raise InterpreterMismatch(
|
raise InterpreterMismatch(
|
||||||
f"tox_current_env: interpreter versions do not match:\n"
|
f"tox_current_env: interpreter versions do not match:\n"
|
||||||
|
@ -27,6 +27,14 @@ def tox(*args, prune=True, **kwargs):
|
|||||||
return cp
|
return cp
|
||||||
|
|
||||||
|
|
||||||
|
def is_available(python):
|
||||||
|
try:
|
||||||
|
subprocess.run((python, "--version"))
|
||||||
|
except FileNotFoundError:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def test_native_toxenv_current_env():
|
def test_native_toxenv_current_env():
|
||||||
result = tox("-e", NATIVE_TOXENV, "--current-env")
|
result = tox("-e", NATIVE_TOXENV, "--current-env")
|
||||||
assert result.stdout.splitlines()[0] == NATIVE_EXECUTABLE
|
assert result.stdout.splitlines()[0] == NATIVE_EXECUTABLE
|
||||||
@ -40,6 +48,17 @@ def test_all_toxenv_current_env():
|
|||||||
assert result.returncode > 0
|
assert result.returncode > 0
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("python", ["python3.4", "python3.5"])
|
||||||
|
def test_missing_toxenv_current_env(python):
|
||||||
|
if is_available(python):
|
||||||
|
pytest.skip(f"Only works if {python} is not available in $PATH")
|
||||||
|
env = python.replace("python", "py").replace(".", "")
|
||||||
|
result = tox("-e", env, "--current-env", check=False)
|
||||||
|
assert f"InterpreterNotFound: {python}" in result.stdout
|
||||||
|
assert "Traceback" not in (result.stderr + result.stdout)
|
||||||
|
assert result.returncode > 0
|
||||||
|
|
||||||
|
|
||||||
def test_all_toxenv_current_env_skip_missing():
|
def test_all_toxenv_current_env_skip_missing():
|
||||||
result = tox("--current-env", "--skip-missing-interpreters", check=False)
|
result = tox("--current-env", "--skip-missing-interpreters", check=False)
|
||||||
assert "InterpreterMismatch:" in result.stdout
|
assert "InterpreterMismatch:" in result.stdout
|
||||||
|
Loading…
Reference in New Issue
Block a user