[TIP] [Distutils] RFC: Barely minimal CI + tests + packaging in Python WAS: Guidelines for where to put tests & how to package them
fuzzyman at voidspace.org.uk
Mon Mar 1 11:43:31 PST 2010
On 01/03/2010 19:22, Chris Withers wrote:
> P.J. Eby wrote:
>> At 10:41 AM 2/25/2010 -0500, Olemis Lang wrote:
>>> PS: BTW, how could I trigger easy_install(ation) at a given point
>>> while implementing a distutils command, and let the command perform
>>> further actions if deps are installed correctly ?
>> Setuptools' "Distribution" object has a method for fetching
>> dependencies. See setuptools' "test" command for an example. (This
>> doesn't install the dependencies globally, just drops eggs into the
>> build directory. But they're there and available to be reused for
>> installation in a later phase, under normal circumstances.)
> ...which is all pretty grim. If you use this with other packaging
> tools, like, say, buildout, the testing dependencies just get dumped
> into your buildout, which is a bit yucky to put it mildly.
> How about putting them where other eggs get put but only making them
> available for the tests?
> Failing that, how about putting them somewhere temporary?
For distutils 2 / distribute I think the idea is something along the
There will be a Test-Requires-Dist (or equivalent) field for specifying
test dependencies - still to be confirmed
distutils2 by default won't install any dependencies for you - so
neither "setup.py install" nor "setup.py test" will install test
distribute will install standard dependencies but not test dependencies
with distribute "setup.py test" will *not* install test dependencies -
there will be a new parameter for install to tell it to fetch test
dependencies (if necessary)
This is all still subject to discussion and really belongs on the
distutils mailing list rather than here. It may be possible for
"setup.py test" with distribute to have another parameter telling it to
install test dependencies temporarily and then uninstall them afterwards...
All the best,
READ CAREFULLY. By accepting and reading this email you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies (”BOGUS AGREEMENTS”) that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.
More information about the testing-in-python