Version information
$ detox --version 2.1.1 imported from /home/mg/.venv/local/lib/python2.7/site-packages/tox/__init__.pyc $ tox --version 2.1.1 imported from /home/mg/.venv/local/lib/python2.7/site-packages/tox/__init__.pyc $ pip list | grep tox detox (0.10.0) tox (2.1.1)
Steps to reproduce:
Create a tox.ini:
[tox] envlist = py27,py34 skipsdist = true [testenv] deps = mock commands = python -c pass
Run
detox
$ detox py27 create: /home/mg/src/bugs/detox-bug/.tox/py27 py34 create: /home/mg/src/bugs/detox-bug/.tox/py34 py27 installdeps: mock py34 installdeps: mock py27 runtests: PYTHONHASHSEED='1700383350' py27 runtests: commands[0] | python -c pass py34 runtests: PYTHONHASHSEED='1700383350' py34 runtests: commands[0] | python -c pass ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :)
Run
detox
again.
Expected behavior:
$ detox py27 runtests: PYTHONHASHSEED='3485389327' py27 runtests: commands[0] | python -c pass py34 runtests: PYTHONHASHSEED='3485389327' py34 runtests: commands[0] | python -c pass ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :)
Actual behavior:
$ detox py27 create: /home/mg/src/bugs/detox-bug/.tox/py27 py34 create: /home/mg/src/bugs/detox-bug/.tox/py34 py27 installdeps: mock py34 installdeps: mock py34 runtests: PYTHONHASHSEED='2836152123' py27 runtests: commands[0] | python -c pass py27 runtests: PYTHONHASHSEED='2836152123' py34 runtests: commands[0] | python -c pass ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :)
Interesting observations:
run
tox
, then rundetox
again:$ tox py27 create: /home/mg/src/bugs/detox-bug/.tox/py27 py27 installdeps: mock py27 installed: funcsigs==0.4,mock==1.3.0,pbr==1.8.1,six==1.10.0,wheel==0.24.0 py27 runtests: PYTHONHASHSEED='2247925867' py34 create: /home/mg/src/bugs/detox-bug/.tox/py34 py34 installdeps: mock py34 installed: mock==1.3.0,pbr==1.8.1,six==1.10.0,wheel==0.24.0 py34 runtests: PYTHONHASHSEED='2247925867' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :) $ detox py27 runtests: PYTHONHASHSEED='3552145827' py34 runtests: PYTHONHASHSEED='3552145827' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :) $ detox py27 runtests: PYTHONHASHSEED='1363150801' py34 runtests: PYTHONHASHSEED='1363150801' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :)
see? it's fixed!
edit
tox.ini
and change thedeps
of one of the environments:[testenv:py27] deps = mock coverage
Now run
detox
twice$ detox py27 recreate: /home/mg/src/bugs/detox-bug/.tox/py27 py34 runtests: PYTHONHASHSEED='2209373244' py27 installdeps: mock, coverage py27 runtests: PYTHONHASHSEED='2209373244' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :) $ detox py27 create: /home/mg/src/bugs/detox-bug/.tox/py27 py34 runtests: PYTHONHASHSEED='1329105987' py27 installdeps: mock, coverage py27 runtests: PYTHONHASHSEED='1329105987' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :)
Note how it recreates the env on 1st run, and then plain "creates" it again? Now run
tox
twice anddetox
again:$ tox py27 create: /home/mg/src/bugs/detox-bug/.tox/py27 py27 installdeps: mock, coverage py27 installed: coverage==4.0.1,funcsigs==0.4,mock==1.3.0,pbr==1.8.1,six==1.10.0,wheel==0.24.0 py27 runtests: PYTHONHASHSEED='1755727780' py34 installed: mock==1.3.0,pbr==1.8.1,six==1.10.0,wheel==0.24.0 py34 runtests: PYTHONHASHSEED='1755727780' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :) $ tox py27 installed: coverage==4.0.1,funcsigs==0.4,mock==1.3.0,pbr==1.8.1,six==1.10.0,wheel==0.24.0 py27 runtests: PYTHONHASHSEED='1931080271' py34 installed: mock==1.3.0,pbr==1.8.1,six==1.10.0,wheel==0.24.0 py34 runtests: PYTHONHASHSEED='1931080271' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :) $ detox py27 runtests: PYTHONHASHSEED='3586531515' py34 runtests: PYTHONHASHSEED='3586531515' ________________________ summary ________________________ py27: commands succeeded py34: commands succeeded congratulations :)