[Python-Dev] Python Language Summit at PyCon: Agenda

Barry Warsaw barry at python.org
Mon Mar 4 20:14:57 CET 2013


On Mar 04, 2013, at 07:41 PM, Antoine Pitrou wrote:

>> $ python -m unittest discover
>> $ python setup.py test
>> $ python setup.py nosetests
>> $ python -m nose test
>> $ nosetests-X.Y
>> 
>> Besides having a multitude of choices, there's almost no way to
>> automatically discover (e.g. by metadata inspection or some such) how to
>> invoke the tests.  You're often lucky if there's a README.test and it's
>> still accurate.
>
>I hope we can have a "pytest" utility that does the right thing in 3.4 :-)
>Typing "python -m unittest discover" is too cumbersome.

Where is this work being done (e.g. is there a PEP)?

One thing to keep in mind is how to invoke this on a system with multiple
versions of Python available.  For example, in Debian, a decision was recently
made to drop all the nosetests-X.Y scripts from /usr/bin[1].

This makes sense when you think about having at least two major versions of
Python (2.x and 3.x) and maybe up to four (2.6, 2.7, 3.2, 3.3), *plus* debug
versions of each.  Add to that, we don't actually know at package build time
which versions of Python you might have installed on your system.

A suggestion was made to provide a main entry point so that `pythonX.Y -m
nose` would work, which makes sense to me and was adopted by the
nose-devs[2].

So while a top level `pytest` command may make sense, it also might not ;).
While PEP 426 has a way to declare test dependencies (a good thing), it seems
to have no way to declare how to actually run the tests.

Cheers,
-Barry

[1] Start of thread:
    http://comments.gmane.org/gmane.linux.debian.devel.python/8572

[2] https://github.com/nose-devs/nose/issues/634


More information about the Python-Dev mailing list