Chris McDonough <chr...@plope.com> added the comment:

Hi Douglas,

Sorry for not responding til now; the worthwhile patches always require more
thought than plain bugreports.  Thanks for the submission!

(FTR, I tried to apply the patch but it has a syntax error on line 267.  That
was easy to fix, just needed a tab char).

Anyway, it's a bit hard to tell from here: will this patch introduce any
backwards incompatibility when people upgrade to a version of who that contains
your patch?

If not (that's a bit of a deal-killer), a few things:

- To get this into who, we really need all the code covered by tests.  Here's
output of a run of "setup.py nosetests" of the package after applying your 
patch:

Name                           Stmts   Exec  Cover   Missing
------------------------------------------------------------
repoze.who                         0      0   100%   
repoze.who.classifiers            37     37   100%   
repoze.who.config                102    102   100%   
repoze.who.interfaces             17     17   100%   
repoze.who.middleware            255    255   100%   
repoze.who.plugins                 0      0   100%   
repoze.who.plugins.auth_tkt      104    104   100%   
repoze.who.plugins.basicauth      45     45   100%   
repoze.who.plugins.cookie         39     39   100%   
repoze.who.plugins.fixtures   coverage.CoverageException: No source for compiled
code
'/Users/chrism/projects/repoze/svn/repoze.who/trunk/repoze/who/plugins/fixtures/__init__.pyc'.
repoze.who.plugins.form          132    132   100%   
repoze.who.plugins.htpasswd       45     45   100%   
repoze.who.plugins.sql           192    163    84%   25-26, 51, 65-76, 84-85,
88-92, 105-108, 128, 138-139, 165, 172, 201, 213-216, 224-225
repoze.who.restrict               23     23   100%   
repoze.who.utils                   3      3   100%   
------------------------------------------------------------
TOTAL                            994    965    97%   

Without your patches, we get 100% code coverage, which is what we shoot for.  A
lot of the un-covered code is likely due to conditional imports.  But the
conditional imports themselves have a little bit of a smell, especially the ones
that try an import but then turn around and catch an ImportError exception and
reraise a different error to help.  We usually prefer to allow original
exceptions to propagate up even if it means a slightly more cryptic error
message, it makes the code easier to read and maintain.

A few style things (picaynue but also important, to us at least):

- In default_password_compare, instead of putting things into a big
if/else/else, etc, can we use a dict full of functions by name and dispatch on
the name?

- The r.who source is formatted at 79 char linebreaks. 

If fixing that stuff is too much work, I'd suggest forking the SQL plugin itself
into a separate package and releasing it by itself.  That'd be a reasonable
thing either way, actually.

__________________________________
Repoze Bugs <b...@bugs.repoze.org>
<http://bugs.repoze.org/issue85>
__________________________________
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to