From 4c3e4e2ef9e237ae74cdd68d6a93b3b7f86f3d57 Mon Sep 17 00:00:00 2001 From: Patrice Neff Date: Wed, 28 Oct 2020 12:23:18 +0000 Subject: [PATCH] Fix `VIRTUALENV_PYTHON` environment lookup The previous change which introduced the fallback discovery (#1995) broke this behaviour. --- src/virtualenv/discovery/builtin.py | 1 + tests/unit/config/test_env_var.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/virtualenv/discovery/builtin.py b/src/virtualenv/discovery/builtin.py index 93e2c7bd5..b66ecb193 100644 --- a/src/virtualenv/discovery/builtin.py +++ b/src/virtualenv/discovery/builtin.py @@ -25,6 +25,7 @@ def add_parser_arguments(cls, parser): "--python", dest="python", metavar="py", + type=str, action="append", default=[], help="interpreter based on what to create environment (path/identifier) " diff --git a/tests/unit/config/test_env_var.py b/tests/unit/config/test_env_var.py index 8eb858d7c..8adf955d1 100644 --- a/tests/unit/config/test_env_var.py +++ b/tests/unit/config/test_env_var.py @@ -4,6 +4,7 @@ import pytest +from virtualenv.config.cli.parser import VirtualEnvOptions from virtualenv.config.ini import IniConfig from virtualenv.run import session_via_cli from virtualenv.util.path import Path @@ -31,6 +32,13 @@ def test_value_bad(monkeypatch, caplog, empty_conf): assert "invalid literal" in caplog.messages[0] +def test_python_via_env_var(monkeypatch): + options = VirtualEnvOptions() + monkeypatch.setenv(str("VIRTUALENV_PYTHON"), str("python3")) + session_via_cli(["venv"], options=options) + assert options.python == ["python3"] + + def test_extra_search_dir_via_env_var(tmp_path, monkeypatch): monkeypatch.chdir(tmp_path) value = "a{}0{}b{}c".format(os.linesep, os.linesep, os.pathsep)