[TIP] RFC: tox-2.0 to restrict/isolate env variables in test runs

David Cournapeau cournape at gmail.com
Tue Jun 9 08:00:26 PDT 2015


I am late to the party, and I guess it is too late, but I am not convinced
this is a good idea, at least not as a default (should be opt-in, not
opt-out).

This breaks a lot of basic features, in a way that is fairly complicated to
debug. E.g. with tox 2.0, os.path.expanduser("~") is now broken on windows
because e.g. USERNAME is not propagated. Realistically, way too many
programs depend on various environment variables.



On Sun, Apr 19, 2015 at 4:31 PM, holger krekel <holger at merlinux.eu> wrote:

> Hi tox users,
>
> for tox-2.0 i'd like to introduce environment variable isolation.  The
> idea is that only a minimal default set of environment variables is
> transferred to the test environment in contrast to the tox<2.0 where
> all environment variables are copied to the test run.  With tox-2.0 one
> can thus make sure tests don't depend on random env variables but only
> those which are specified with tox.ini.
>
> If you want to transfer any other variables you'd have to use a new
> "passenv"
> setting.  For example to pass through the content of LANG (used for locale
> settings)
> and typical home-directory settings (on win32 and unix):
>
>     [testenv]
>     passenv = LANG HOME HOMEDIR HOMEDRIVE
>
> If an env variable does not exist it is ignored, remains unset in the test
> run.
> This allows to uncover hidden envvar dependencies and explicitely control
> them.
> FYI you can today already use the "setenv" option to specify env vars::
>
>     [testenv]
>     setenv =
>         MYENV = somesetting
>
> But there is no way to prevent/exclude env variables to be copied to the
> test run
> from the environment variable set with which you invoke tox.
>
> For a somewhat smoother transition it might make sense to default to the
> old behaviour (transfer all env variables) with tox-2.0.X and assume
> passenv
> transfers all variables via a default "*" setting but issue a warning
> and with tox-2.1 then default to an empty passenv setting.
>
> comments welcome,
> holger
>
> --
> about me:    http://holgerkrekel.net/about-me/
> contracting: http://merlinux.eu
>
> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20150610/d39ee756/attachment.htm>


More information about the testing-in-python mailing list