A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2007-March/071833.html below:

[Python-Dev] unittest enhancement for TestCase classes hierarchies

[Python-Dev] unittest enhancement for TestCase classes hierarchies [Python-Dev] unittest enhancement for TestCase classes hierarchiesJean-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

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4