[Python-Dev] unittest enhancement for TestCase classes hierarchies

2007-03-10 Thread Collin Winter
In my continuing trawl through the SF patch tracker, I came across
#1244929 (http://python.org/sf/1244929), which causes
TestLoader.loadTestsFromModule() to skip classes whose name starts
with an underscore. This addresses the warning in that method's docs:


While using a hierarchy of
TestCase-derived classes can be convenient in sharing
fixtures and helper functions, defining test methods on base classes
that are not intended to be instantiated directly does not play well
with this method.  Doing so, however, can be useful when the
fixtures are different and defined in subclasses.


Does not play well, in this case, means that your base classes will
be picked up against your will if they subclass TestCase.

I like the patch and have worked up tests and doc changes for it. Any
objections to including this in 2.6?

Collin Winter
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] unittest enhancement for TestCase classes hierarchies

2007-03-10 Thread Jean-Paul Calderone
On Sat, 10 Mar 2007 09:13:28 -0600, Collin Winter [EMAIL PROTECTED] wrote:
In my continuing trawl through the SF patch tracker, I came across
#1244929 (http://python.org/sf/1244929), which causes
TestLoader.loadTestsFromModule() to skip classes whose name starts
with an underscore. This addresses the warning in that method's docs:


While using a hierarchy of
TestCase-derived classes can be convenient in sharing
fixtures and helper functions, defining test methods on base classes
that are not intended to be instantiated directly does not play well
with this method.  Doing so, however, can be useful when the
fixtures are different and defined in subclasses.


Does not play well, in this case, means that your base classes will
be picked up against your will if they subclass TestCase.

I like the patch and have worked up tests and doc changes for it. Any
objections to including this in 2.6?

This use case is what mixins are for.  You don't have to include TestCase
in your ancestry until you get to a class which you actually want to run
tests.

The current rule of loading anything that subclasses TestCase is simple
and straightforward.  Complicating it to provide a feature which is already
available through a widely used standard Python idiom doesn't seem worth
while.

Jean-Paul
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] unittest enhancement for TestCase classes hierarchies

2007-03-10 Thread Collin Winter
On 3/10/07, Jean-Paul Calderone [EMAIL PROTECTED] wrote:
 On Sat, 10 Mar 2007 09:13:28 -0600, Collin Winter [EMAIL PROTECTED] wrote:
 In my continuing trawl through the SF patch tracker, I came across
 #1244929 (http://python.org/sf/1244929), which causes
 TestLoader.loadTestsFromModule() to skip classes whose name starts
 with an underscore. This addresses the warning in that method's docs:
 
 
 While using a hierarchy of
 TestCase-derived classes can be convenient in sharing
 fixtures and helper functions, defining test methods on base classes
 that are not intended to be instantiated directly does not play well
 with this method.  Doing so, however, can be useful when the
 fixtures are different and defined in subclasses.
 
 
 Does not play well, in this case, means that your base classes will
 be picked up against your will if they subclass TestCase.
 
 I like the patch and have worked up tests and doc changes for it. Any
 objections to including this in 2.6?

 This use case is what mixins are for.  You don't have to include TestCase
 in your ancestry until you get to a class which you actually want to run
 tests.

 The current rule of loading anything that subclasses TestCase is simple
 and straightforward.  Complicating it to provide a feature which is already
 available through a widely used standard Python idiom doesn't seem worth
 while.

Understood, but I don't like having to keep repeating, yes, this
subclass of X is also a TestCase; so is this one, and this one, and
this one, etc. Python already ignores _-prefixed names in certain
analogous, load-everything-from-a-module situations (from x import
*), so I don't see this as being particularly unpythonic.

Nor do I see it as all that complicated. Striking the current
equivocating, paragraph-long warning from loadTestsFromModule()'s docs
and replacing it with Classes whose name starts with an underscore
will be ignored seems like a win to me.

Collin Winter
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com