Problem understanding some unit tests in Python distribution
André
andre.roberge at gmail.com
Sat Apr 4 04:51:52 EDT 2009
On Apr 4, 4:38 am, Peter Otten <__pete... at web.de> wrote:
> André wrote:
> > Hi everyone,
>
> > In the hope of perhaps contributing some additional unit tests for
> > Python (thus contributing back to the community), I dove in the code
> > and found something that should be simple but that I can not wrap my
> > head around.
>
> > In list_tests.py, one finds
> > ===
> > from test import test_support, seq_tests
>
> > class CommonTest(seq_tests.CommonTest):
>
> > def test_init(self):
> > # Iterable arg is optional
> > self.assertEqual(self.type2test([]), self.type2test())
> > # etc.
> > ===
>
> > Wanting to figure out what the type2test() method does, I looked in
> > seq_tests.py and found the following:
>
> > ===
> > class CommonTest(unittest.TestCase):
> > # The type to be tested
> > type2test = None
>
> > def test_constructors(self):
> > l0 = []
> > l1 = [0]
> > l2 = [0, 1]
>
> > u = self.type2test()
> > u0 = self.type2test(l0)
> > u1 = self.type2test(l1)
> > u2 = self.type2test(l2)
>
> > # etc.
> > ===
> > No where do I find a definition for the type2test() method - other
> > than seeing it as a class variable defined to be None by default. I
> > looked in unittest.TestCase and did not see it anywhere.
>
> > Am I missing something obvious? I would appreciate if someone could
> > point me in the right direction.
>
> Use grep ;)
>
I sort of did (use a "find all" from within my editor...)
> CommonTest is not run standalone, it is used as a(n abstract) base class for
> several other tests that override type2test.
>
> E. g. in Lib/test/list_tests.py:
>
> from test import test_support, seq_tests
>
> class CommonTest(seq_tests.CommonTest):
> ...
>
> And then in Lib/test/test_list.py:
>
> from test import test_support, list_tests
>
> class ListTest(list_tests.CommonTest):
> type2test = list
I can't believe I missed that one.
Thank you very much!
André
> ...
>
> Peter
More information about the Python-list
mailing list