[Python-Dev] Python Language Summit at PyCon: Agenda (original) (raw)

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