[Python-Dev] unittest enhancement for TestCase classes hierarchies

Jean-Paul Calderone exarkun at divmod.com
Sat Mar 10 16:49:45 CET 2007


On Sat, 10 Mar 2007 09:13:28 -0600, Collin Winter <collinw at gmail.com> 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


More information about the Python-Dev mailing list