Re: Merge proposal: tseaver-better_unittests branch of zope.interface

Tres Seaver <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <[email protected]>
-----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          [email protected]
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-----

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.