summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_config.py12
-rw-r--r--tox/config.py27
2 files changed, 25 insertions, 14 deletions
diff --git a/tests/test_config.py b/tests/test_config.py
index 8aa7abd..8f5f4c5 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -926,6 +926,18 @@ class TestConfigTestEnv:
assert argv[7][0] == config.homedir.join(".tox", "distshare")
assert argv[8][0] == conf.envlogdir
+ def test_substitution_notfound_issue246(tmpdir, newconfig):
+ config = newconfig("""
+ [testenv:py27]
+ setenv =
+ FOO={envbindir}
+ BAR={envsitepackagesdir}
+ """)
+ conf = config.envconfigs['py27']
+ env = conf.setenv
+ assert 'FOO' in env
+ assert 'BAR' in env
+
def test_substitution_positional(self, newconfig):
inisource = """
[testenv:py27]
diff --git a/tox/config.py b/tox/config.py
index 092de2a..d23d690 100644
--- a/tox/config.py
+++ b/tox/config.py
@@ -320,6 +320,18 @@ def tox_addoption(parser):
help="additional arguments available to command positional substitution")
# add various core venv interpreter attributes
+ def basepython_default(testenv_config, value):
+ if value is None:
+ for f in testenv_config.factors:
+ if f in default_factors:
+ return default_factors[f]
+ return sys.executable
+ return str(value)
+
+ parser.add_testenv_attribute(
+ name="basepython", type="string", default=None, postprocess=basepython_default,
+ help="executable name or path of interpreter used to create a "
+ "virtual test environment.")
parser.add_testenv_attribute(
name="envdir", type="path", default="{toxworkdir}/{envname}",
@@ -453,19 +465,6 @@ def tox_addoption(parser):
name="usedevelop", type="bool", postprocess=develop, default=False,
help="install package in develop/editable mode")
- def basepython_default(testenv_config, value):
- if value is None:
- for f in testenv_config.factors:
- if f in default_factors:
- return default_factors[f]
- return sys.executable
- return str(value)
-
- parser.add_testenv_attribute(
- name="basepython", type="string", default=None, postprocess=basepython_default,
- help="executable name or path of interpreter used to create a "
- "virtual test environment.")
-
parser.add_testenv_attribute_obj(InstallcmdOption())
parser.add_testenv_attribute_obj(DepOption())
@@ -709,7 +708,7 @@ class parseini:
if atype == "path":
reader.addsubstitutions(**{env_attr.name: res})
- if env_attr.name == "install_command":
+ if env_attr.name == "envdir":
reader.addsubstitutions(envbindir=vc.envbindir, envpython=vc.envpython,
envsitepackagesdir=vc.envsitepackagesdir)
return vc