[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