[TIP] tox-1.2: some bug fixes for the virtualenv-based generic test runner

Michael Foord fuzzyman at voidspace.org.uk
Fri Nov 11 10:28:53 PST 2011


On 11 Nov 2011, at 15:26, holger krekel wrote:

> Hey Michael,
> 
> On Fri, Nov 11, 2011 at 12:34 +0000, Michael Foord wrote:
>> On 10 Nov 2011, at 18:44, holger krekel wrote:
>> 
>>> tox 1.2: the virtualenv-based test run automatizer
>>> ===========================================================================
>>> 
>>> I am happy to announce tox 1.2, now using and depending on the latest
>>> virtualenv code and containing some bug fixes.  TOX automates tedious
>>> test activities driven from a simple ``tox.ini`` file, including:
>>> 
>> 
>> 
>> Hey Holger,
>> 
>> When I run tox 1.2 with Python 2.7 my Python 3 (3.1 / 3.2) tests no longer run - they are picking up the wrong virtualenv.py. 
> 
> Just to be sure, which virtualenv version is this?
> 
> On my OSX 10.6, creating the py31 env work nicely like this:
> 
>    (0)hpk at noco:~/p/tox$ tox -e py31 tests/test_config.py 
>    ...
>    __________________________ [tox testenv:py31] ______________________________
>    [TOX] ***creating virtualenv py31
>    [TOX] /Users/hpk/p/tox/.tox$ /Library/Frameworks/Python.framework/Versions/3.1/bin/python3.1 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv-1.6.4-py2.7.egg/virtualenv.py --no-site-packages py31 >py31/log/0.log
> 
>    ...
> 
> Only difference i see is your "virtualenv.py" resides directly in site-packages. 
> Odd?!

Well it looks like your virtualenv is installed with easy_install (inside an egg) whereas mine was done with pip. My suspicion is that this is the cause of the problem - somehow that location is on the path for the Python 3 environments.

My version of virtualenv is 1.6.4. Are you sure you're using Python 2.7? The default on OS X 10.6 is Python 2.6. (I'm using OS X 10.7 but I think the location of virtualenv is more likely to be the problem.)

All the best,

Michael Foord


> 
> holger
> 
>> _________________________ [tox testenv:py32] __________________________
>> [TOX] ***recreating virtualenv py32 (configchange/incomplete install detected)
>> [TOX] /compile/mock/.tox$ /Library/Frameworks/Python.framework/Versions/3.2/bin/python3.2 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py --no-site-packages py32 >py32/log/0.log
>> [TOX] ERROR: invocation failed, logfile: /compile/mock/.tox/py32/log/0.log
>> [TOX] ERROR: /compile/mock/.tox$ /Library/Frameworks/Python.framework/Versions/3.2/bin/python3.2 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py --no-site-packages py32 >py32/log/0.log
>> New python executable in py32/bin/python
>> Traceback (most recent call last):
>>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 1952, in <module>
>>    main()
>>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 810, in main
>>    never_download=options.never_download)
>>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 907, in create_environment
>>    search_dirs=search_dirs, never_download=never_download)
>>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 608, in install_distribute
>>    search_dirs=search_dirs, never_download=never_download)
>>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py", line 493, in _install_req
>>    import pkg_resources
>>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources.py", line 45
>>    def _bypass_ensure_directory(name, mode=0777):
>>                                               ^
>> SyntaxError: invalid token
>> 
>> [TOX] ERROR: InvocationError: /Library/Frameworks/Python.framework/Versions/3.2/bin/python3.2 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py --no-site-packages py32 (see /compile/mock/.tox/py32/log/0.log)
>> 
>> 
>> It works fine with Python 2.6 (so not really a problem), but it's odd. Any ideas? (Mac OS X)
>> 
>> All the best,
>> 
>> Michael Foord
>> 
>> 
>> 
>>> * creation and management of different virtualenv environments with
>>> different Python interpreters
>>> * packaging and installing your package into each of them
>>> * running your test tool of choice, be it nose, py.test or unittest2 or
>>> other tools such as "sphinx" doc checks
>>> * testing dev packages against each other without needing to upload to PyPI
>>> 
>>> It works well on virtually all Python interpreters that support virtualenv.
>>> 
>>> Docs and examples are at:
>>> 
>>>   http://tox.testrun.org
>>> 
>>> Installation:
>>> 
>>>   pip install -U tox
>>> 
>>> code hosting and issue tracking on bitbucket:
>>> 
>>>   http://bitbucket.org/hpk42/tox
>>> 
>>> best,
>>> Holger Krekel
>>> 
>>> 1.2 compared to 1.1
>>> ---------------------
>>> 
>>> - remove the virtualenv.py that was distributed with tox and depend
>>> on virtualenv-1.6.4 (possible now since the latter fixes a few bugs
>>> that the inling tried to work around)
>>> - fix issue10: work around UnicodeDecodeError when inokving pip (thanks
>>> Marc Abramowitz)
>>> - fix a problem with parsing {posargs} in tox commands (spotted by goodwill)
>>> - fix the warning check for commands to be installed in testevironment
>>> (thanks Michael Foord for reporting)
>>> 
>>> _______________________________________________
>>> testing-in-python mailing list
>>> testing-in-python at lists.idyll.org
>>> http://lists.idyll.org/listinfo/testing-in-python
>>> 
>> 
>> 
>> --
>> http://www.voidspace.org.uk/
>> 
>> 
>> May you do good and not evil
>> May you find forgiveness for yourself and forgive others
>> May you share freely, never taking more than you give.
>> -- the sqlite blessing 
>> http://www.sqlite.org/different.html
>> 
>> 
>> 
>> 
>> 
> 


--
http://www.voidspace.org.uk/


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing 
http://www.sqlite.org/different.html








More information about the testing-in-python mailing list