[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