[Zope-dev] Merge proposal: tseaver-better_unittests branch of zope.interface

Tres Seaver tseaver at palladion.com
Tue Mar 27 22:33:38 UTC 2012


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

On 03/27/2012 06:21 PM, Marius Gedminas wrote:

>>  $ bin/python setup.py dev
> 
> Is that different from 'python setup.py develop'?  I've never seen 'dev'
> before.

'dev' is an alias (defined in 'setup.cfg' for the following::

  setup.py develop easy_install zope.interface[testing]


>>  running develop
>>  ...
>>  Finished processing dependencies for zope.interface[testing]
>>  $ bin/nosetests --with-coverage
>>  ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
>>  Name                               Stmts   Miss  Cover   Missing
>>  ----------------------------------------------------------------
>>  zope.interface                        30      0   100%
>>  zope.interface.adapter               440      0   100%
>>  zope.interface.advice                 69      0   100%
>>  zope.interface.common                  0      0   100%
>>  zope.interface.common.idatetime       98      0   100%
>>  zope.interface.common.interfaces      81      0   100%
>>  zope.interface.common.mapping         32      0   100%
>>  zope.interface.common.sequence        38      0   100%
>>  zope.interface.declarations          312      0   100%
>>  zope.interface.document               54      0   100%
>>  zope.interface.exceptions             21      0   100%
>>  zope.interface.interface             378      0   100%
>>  zope.interface.interfaces            137      0   100%
>>  zope.interface.registry              300      0   100%
>>  zope.interface.ro                     25      0   100%
>>  zope.interface.verify                 48      0   100%
>>  ----------------------------------------------------------------
>>  TOTAL                               2063      0   100%
>>  ----------------------------------------------------------------------
>>  Ran 707 tests in 2.880s
> 
> Ooh, and I also see a tox.ini on that branch!  That's extremely welcome!
> 
> (Lately when I had to make some changes to zope.* packages I've been
> kind of annoyed about the non-straightforwardness of testing all
> supported Python versions.  I briefly tried tox, but didn't want to
> spend hours figuring out how to make it play nice with buildout.)


I still use buildout for complicated "application" installs, but have grown
to dislike it for testing "library" code.

> Question: does the 100% coverage number mean both C code *and* Python
> fallbacks are tested now?

They both pass the same suite of tests.  I can't guarantee 100% covereage
of the C code, but given that it passes the same tests, I'm satisfied.

> Question: does 'bin/python setup.py test' work?

Yes.  I consider that a necessary-but-not-sufficient minium for any library.

> It seems to be becoming a sort of a universal standard for "run all the
> tests of this Python package please", and is usually not that difficult
> to hook up.  (If not, I may volunteer to hook it up.)
> 
> Question: can we still use zope.testrunner?

You can bootstrap and run the buildout and then run 'bin/test'.

> I like some of zope.testrunner's features a lot (like colorization, test
> filtering options explicitly by module and by test name).  (I may also
> volunteer to hook this up, if it's not hooked up.)
> 
>>
>>  OK
>>  $ bin/python setup.py docs
>>  running easy_install
>>  Searching for zope.interface[docs]
>>  ...
>>  Finished processing dependencies for zope.interface[docs]
>>  $ cd docs
>>  $ PATH=../bin:$PATH make html
>>  ...
>>  build succeeded.
>>
>>  Build finished. The HTML pages are in _build/html.
>> ------------------------------ %< ---------------------------------------
> 
> Ooh, are we going to see zope.interface docs on readthedocs.org?

I'm not opposed in principle. :)

>> In addition to minimizing "Zope-iness", providing full coverage using
>> small, descriptively-named unittests makes the code more maintainable.
>> For instance, I expect to build on top of these improved tests as the basis
>> for a conversion to a "subset", supporting Python 2.6, 2.7, and 3.x from
>> a single codebase, without needing a translator like lib2to3.
> 
> Ooh, nice!
> 
>> I think it will also be easier to improve the docs, now that they no
>> longer bear the burden of supplying coverage / regression testing for
>> the code.  We can remove a bunch of extremely-terse fragments, and have
>> the examples which remain focus more on improving the reader's
>> understanding than exercising some corner case.
>>
>> Unless the consensus is against it, I plan to merge this branch to the
>> trunk early next week.
> 
> I'm +1 for this.

Thanks for the support!


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.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9yQEIACgkQ+gerLs4ltQ7bzQCgne6Zv0hJHwjA7HyeKum1ZysY
zcQAn31knVQ19/va/mjXl97oSWj9ELRN
=J/dt
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list