1 new commit in tox: https://bitbucket.org/hpk42/tox/commits/37c6dac2b848/ Changeset: 37c6dac2b848 User: hpk42 Date: 2015-06-19 09:10:16+00:00 Summary: Merged in stefano-m/tox/passenv_multiline (pull request #166)
Issue #259 passenv statement should accept multi-line list Affected #: 2 files diff -r 673d3f1f8d095cd8e1733506ffdc2f162b93e59b -r 37c6dac2b8484bb084dd6fff81fde108e5b96a4c tests/test_config.py --- a/tests/test_config.py +++ b/tests/test_config.py @@ -696,14 +696,45 @@ assert envconfig.setenv['ANOTHER_VAL'] == 'else' @pytest.mark.parametrize("plat", ["win32", "linux2"]) - def test_passenv(self, tmpdir, newconfig, monkeypatch, plat): + def test_passenv_as_multiline_list(self, tmpdir, newconfig, monkeypatch, plat): monkeypatch.setattr(sys, "platform", plat) monkeypatch.setenv("A123A", "a") monkeypatch.setenv("A123B", "b") monkeypatch.setenv("BX23", "0") config = newconfig(""" [testenv] - passenv = A123* B?23 + passenv = + A123* + # isolated comment + B?23 + """) + assert len(config.envconfigs) == 1 + envconfig = config.envconfigs['python'] + if plat == "win32": + assert "PATHEXT" in envconfig.passenv + assert "SYSTEMDRIVE" in envconfig.passenv + assert "SYSTEMROOT" in envconfig.passenv + assert "TEMP" in envconfig.passenv + assert "TMP" in envconfig.passenv + else: + assert "TMPDIR" in envconfig.passenv + assert "PATH" in envconfig.passenv + assert "PIP_INDEX_URL" in envconfig.passenv + assert "LANG" in envconfig.passenv + assert "A123A" in envconfig.passenv + assert "A123B" in envconfig.passenv + + @pytest.mark.parametrize("plat", ["win32", "linux2"]) + def test_passenv_as_space_separated_list(self, tmpdir, newconfig, monkeypatch, plat): + monkeypatch.setattr(sys, "platform", plat) + monkeypatch.setenv("A123A", "a") + monkeypatch.setenv("A123B", "b") + monkeypatch.setenv("BX23", "0") + config = newconfig(""" + [testenv] + passenv = + # comment + A123* B?23 """) assert len(config.envconfigs) == 1 envconfig = config.envconfigs['python'] @@ -724,20 +755,39 @@ def test_passenv_with_factor(self, tmpdir, newconfig, monkeypatch): monkeypatch.setenv("A123A", "a") monkeypatch.setenv("A123B", "b") + monkeypatch.setenv("A123C", "c") + monkeypatch.setenv("A123D", "d") monkeypatch.setenv("BX23", "0") + monkeypatch.setenv("CCA43", "3") + monkeypatch.setenv("CB21", "4") config = newconfig(""" [tox] envlist = {x1,x2} [testenv] passenv = - x1: A123A - x2: A123B + x1: A123A CC* + x1: CB21 + # passed to both environments + A123C + x2: A123B A123D """) assert len(config.envconfigs) == 2 + assert "A123A" in config.envconfigs["x1"].passenv + assert "A123C" in config.envconfigs["x1"].passenv + assert "CCA43" in config.envconfigs["x1"].passenv + assert "CB21" in config.envconfigs["x1"].passenv assert "A123B" not in config.envconfigs["x1"].passenv + assert "A123D" not in config.envconfigs["x1"].passenv + assert "BX23" not in config.envconfigs["x1"].passenv + assert "A123B" in config.envconfigs["x2"].passenv + assert "A123D" in config.envconfigs["x2"].passenv assert "A123A" not in config.envconfigs["x2"].passenv + assert "A123C" in config.envconfigs["x2"].passenv + assert "CCA43" not in config.envconfigs["x2"].passenv + assert "CB21" not in config.envconfigs["x2"].passenv + assert "BX23" not in config.envconfigs["x2"].passenv def test_changedir_override(self, tmpdir, newconfig): config = newconfig(""" diff -r 673d3f1f8d095cd8e1733506ffdc2f162b93e59b -r 37c6dac2b8484bb084dd6fff81fde108e5b96a4c tox/config.py --- a/tox/config.py +++ b/tox/config.py @@ -381,6 +381,11 @@ help="list of X=Y lines with environment variable settings") def passenv(testenv_config, value): + # Flatten the list to deal with space-separated values. + value = list( + itertools.chain.from_iterable( + [x.split(' ') for x in value])) + passenv = set(["PATH", "PIP_INDEX_URL", "LANG"]) # we ensure that tmp directory settings are passed on @@ -402,7 +407,7 @@ return passenv parser.add_testenv_attribute( - name="passenv", type="space-separated-list", postprocess=passenv, + name="passenv", type="line-list", postprocess=passenv, help="environment variables needed during executing test commands " "(taken from invocation environment). Note that tox always " "passes through some basic environment variables which are " 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. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit