[Pytest-commit] commit/tox: hpk42: Merged in itxaka/tox/fix_env_use (pull request #169)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Fri Oct 30 05:26:04 EDT 2015
1 new commit in tox:
https://bitbucket.org/hpk42/tox/commits/763eeed49a7c/
Changeset: 763eeed49a7c
User: hpk42
Date: 2015-10-30 09:26:00+00:00
Summary: Merged in itxaka/tox/fix_env_use (pull request #169)
Tries to fix #99
Affected #: 2 files
diff -r 7e30b4b4591bb51fae92791a60adc98fe21733bb -r 763eeed49a7c572a9c31940932cfbeaff8d32ab1 tests/test_config.py
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -254,6 +254,28 @@
["echo", "cmd", "1", "2", "3", "4", "cmd", "2"],
]
+ def test_command_env_substitution(self, newconfig):
+ """Ensure referenced {env:key:default} values are substituted correctly."""
+ config = newconfig("""
+ [testenv:py27]
+ setenv =
+ TEST=testvalue
+ commands =
+ ls {env:TEST}
+ """)
+ reader = SectionReader("testenv:py27", config._cfg)
+ x = reader.getargvlist("commands")
+ assert x == [
+ "ls testvalue".split()
+ ]
+ assert x != [
+ "ls {env:TEST}".split()
+ ]
+ y = reader.getargvlist("setenv")
+ assert y == [
+ "TEST=testvalue".split()
+ ]
+
class TestIniParser:
def test_getstring_single(self, tmpdir, newconfig):
diff -r 7e30b4b4591bb51fae92791a60adc98fe21733bb -r 763eeed49a7c572a9c31940932cfbeaff8d32ab1 tox/config.py
--- a/tox/config.py
+++ b/tox/config.py
@@ -902,6 +902,7 @@
return '\n'.join(filter(None, map(factor_line, lines)))
def _replace_env(self, match):
+ env_list = self.getdict('setenv')
match_value = match.group('substitution_value')
if not match_value:
raise tox.exception.ConfigError(
@@ -916,11 +917,14 @@
envkey = match_value
if envkey not in os.environ and default is None:
- raise tox.exception.ConfigError(
- "substitution env:%r: unknown environment variable %r" %
- (envkey, envkey))
-
- return os.environ.get(envkey, default)
+ if envkey not in env_list and default is None:
+ raise tox.exception.ConfigError(
+ "substitution env:%r: unknown environment variable %r" %
+ (envkey, envkey))
+ if envkey in os.environ:
+ return os.environ.get(envkey, default)
+ else:
+ return env_list.get(envkey, default)
def _substitute_from_other_section(self, key):
if key.startswith("[") and "]" in key:
Repository URL: https://bitbucket.org/hpk42/tox/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the pytest-commit
mailing list