[Bug 1456695] Re: tox.ConfigError: ConfigError: substitution env error. Support optional ENV variable substitution in tox.ini
Chris J Arges
1456695 at bugs.launchpad.net
Wed May 20 22:52:32 UTC 2015
** Also affects: tox (Ubuntu Trusty)
Importance: Undecided
Status: New
** Changed in: tox (Ubuntu Trusty)
Assignee: (unassigned) => Jorge Niedbalski (niedbalski)
** Changed in: tox (Ubuntu)
Status: In Progress => Fix Released
** Changed in: tox (Ubuntu Trusty)
Status: New => In Progress
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1456695
Title:
tox.ConfigError: ConfigError: substitution env error. Support optional
ENV variable substitution in tox.ini
Status in tox package in Ubuntu:
Fix Released
Status in tox source package in Trusty:
In Progress
Bug description:
[Environment]
Trusty 14.04.2
python-tox | 1.6.0-1 | trusty/universe | all
[Impact]
If a user tries to set an environment variable using setenv
with a substitution + default value, tox will fail with the exception:
tox.ConfigError: ConfigError: substitution env:'JUJU_TEST_ENV:"test"':
unkown environment variable 'JUJU_TEST_ENV:"test"'
[Test Case]
- Write the following example configuration, on a file called tox.ini
[tox]
minversion = 1.6
envlist = py27,py33,py34,pep8
[testenv]
usedevelop=True
deps = -r{toxinidir}/test-requirements.txt
setenv =
JUJU_TEST_ENV = {env:JUJU_TEST_ENV:"test"}
commands=
nosetests -s -v
- Run the following command
$JUJU_TEST_ENV="amazon" tox -e py27
The previous command will generate the following traceback:
Traceback (most recent call last):
File "/usr/bin/tox", line 9, in <module>
load_entry_point('tox==1.6.0', 'console_scripts', 'tox')()
File "/usr/lib/python2.7/dist-packages/tox/_cmdline.py", line 25, in main
config = parseconfig(args, 'tox')
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 44, in parseconfig
parseini(config, inipath)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 236, in __init__
config)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 292, in _makeenvconfig
vc.setenv = reader.getdict(section, 'setenv')
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 419, in getdict
s = self.getdefault(section, name, None)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 511, in getdefault
x = self._replace(x)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 618, in _replace
return rexpattern.sub(replace_func, x)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 609, in _replace_match_no_quote
return self._replace_match(match, quote=False)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 604, in _replace_match
return handler(match, quote)
File "/usr/lib/python2.7/dist-packages/tox/_config.py", line 541, in _replace_env
(envkey, envkey))
tox.ConfigError: ConfigError: substitution env:'JUJU_TEST_ENV:"test"': unkown environment variable 'JUJU_TEST_ENV:"test"'
[Expected Results]
- No traceback is generated and the target variable is correctly
replaced.
[Regression Potential]
- None that i am aware of.
[Other information]
On the vivid version this seems to works out of the box thanks to this
patch: https://bitbucket.org/hpk42/tox/pull-request/86/support-
optional-env-variable-substitution/diff
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/tox/+bug/1456695/+subscriptions
More information about the Ubuntu-sponsors
mailing list