id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 22446,Add tox support,Jeremy Bowman,Tobias McNulty,"tox (https://testrun.org/tox/) makes it easier to run tests in multiple versions of Python, either all in the same test run or one at a time (among other features). Given that Django currently supports multiple Python versions straddling 2.x and 3.x, making this easier seems like a significant win. Key points: * A tox.ini file would be added which defines all the tox environments * The default environment could be run just with`tox` * Specific versions could be run via `tox -e py27`, `tox -e py33`, `tox -e pypy`, etc. * Multiple versions could be tested in a single run via commands like `tox -e py27,py32,py33,pypy` or `tox -e ALL` (especially handy if you'll be stepping away from your computer for a while) * The desired python interpreter(s) would need to be installed beforehand, but tox itself would create the virtualenv(s) and install any necessary dependencies into it * Documentation could be built with `tox -e docs` * In comparison to the current documented commands for running tests, this would be faster to type and easier to remember * The documentation would be updated to mention this as one way (the recommended way?) to run tests and build documentation * No other changes would be needed beyond the creation of tox.ini, so all the old ways of running tests and such would still work unchanged (tox itself would still run those commands) One attempt at adding tox support was made 2 years ago (https://github.com/django/django/pull/110), but had been lumped together with TravisCI support and was rejected on those grounds. It seems more valuable now with the desire to be able to test Python 2, Python 3, and PyPy (and others?) easily.",Cleanup/optimization,closed,Testing framework,dev,Normal,fixed,,,Accepted,1,0,0,0,0,0