[Zope-dev] Re: buildout "tests_require" analogue

Tres Seaver tseaver at palladion.com
Thu Nov 15 09:35:18 EST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Baiju M wrote:
> Chris McDonough wrote:
>>  Is there an equivalent for "tests_require" in
>>  buildout.cfg/zc.recipe.testrunner?
>>
>>  The reason I ask is this... currently the zope.18n distribution has
>>  an install_requires that looks something like this:
>>
>>  install_requires=[ 'setuptools', 'pytz', 'zope.i18nmessageid',
>>  'zope.component [zcml]', 'zope.configuration', ]
>>
>>  That's actually a no-good pack of lies, though. ;-)  I'd like to
>>  change setup.py to something like this:
>>
>>  test_suite = "__main__.alltests", # to support "setup.py test"
>>  tests_require=[ 'zope.testing', 'pytz', 'zope.component [zcml]',
>>  'zope.configuration', ], install_requires=[ 'setuptools', 'pytz',
>>  'zope.i18nmessageid', 'zope.component', # *we* do not require
>>  zope.configuration at all. Our tests # do (for silly reasons) and the
>>  framework which uses our zcml # does. ],
>>
>>  But I want buildout tests to continue to work.
> 
> -1  for using different methods for running tests.
> 
> Testing packages should be done in same way by all developers.
> If one person run tests in one way and another one in another way is not 
> good.
> 
> IMO, we should have a policy to use Buildout for development of Zope 
> packages.

Chris is not advocating switching away from zc.buildout for the
*development* of the packages;  he is arguing that we can't force people
who *use* the packages to stop using the facilities supplied setuptools.

If we want people outside the rather small group of core Zope developers
to *use* our software, we are going to need to accomodate their
expectations about how Python pacakges work.  At a miniumum, any package
which we release to the Cheeseshop should be testable and installable
using the "standard" tool used by nearly everyone:  setuptools.

That means we need to work harder at a coule of things:

 - Making sure the install-time dependencies in setup.py are accurate,
   minimal, and themselves installable.

    $ wget http://download.zope.org/zope.tal-3.4.0.tar.gz
    $ tar xzf zope.tal-3.4.0.tar.gz
    $ cd zope.tal-3.4.0
    $ /path/to/python setup.py install

   If that fails for *any* package listed on the cheeseshop, then
   we lose:  people won't use it, and they won't bother looking at
   other packages we release, either.

 - Making sure that the tests can psss for somebody who is not a
   core Zope developer, (and therefore who doesn't know about
   zc.buildout, or want to).  E.g.:

    $ /path/to/python setup.py develop
    $ /path/to/python setup.py test

   If there are dependencies which are needed to run the tests but
   not merely to install the package, there should be a way to
   spell that.  In setuptools, that is what 'tests_require' is
   for;  buildout doesn't (yet) have such a spelling (I think).

In order to succeed here, we are going to have to quit releasing
packages without more careful thought, testing, etc.



Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHPFkm+gerLs4ltQ4RAtLpAJsEag5KlwI/upMn2lh8uSCneAT08QCdFk2/
VqlhGdbHT0jV9EMPjoaOZ+w=
=3g3v
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list