[TIP] Generating tests dynamically (was Re: Meta-test methods...)
C. Titus Brown
ctb at msu.edu
Fri Apr 24 11:23:56 PDT 2009
On Fri, Apr 24, 2009 at 03:25:33PM +1000, Robert Collins wrote:
-> On Fri, 2009-04-24 at 00:01 -0400, Douglas Philips wrote:
-> > Anyway, I double-dare you pay attention to the issue at hand. :)
-> > I never said generators were bad. I said that checking a test method
-> > for being a generator was a hack, seeminly cool at first, but upon
-> > further thought it is just as a proof of concept that it is useful
-> > to
-> > have a way to dynamically generate a sequence of test
-> > methods/functions.
-> > Testing only for generators is both opaque and, critically, fails to
-> > generalize to arbitrary python sequences.
->
-> At least in unittest, you can do this just by generating whatever tests
-> you want in TestSuite.__iter__.
->
-> countTestCases clearly can't do a lot there, but that is the only method
-> in the protocol that conflicts with generation.
This may seem tangential but IMO is not: could someone document the
!%#!$!# out of unittest, please?
Reading through this
http://docs.python.org/library/unittest.html
doesn't give me any clue as to how to extend TestSuite to do this; sure,
I can read (and modify) the source code, but basing a test suite for
multiple versions of Python on unittest internals stirkes me as a tad
risky.
With nose, I'm fairly sure that once given an API for generating tests
in my test suite, that API will continue to work. That's partly because
I know (roughly) where Jason Pellerin lives, and partly because the API
is rather minimal and it can be implemented in multiple ways. With
unittest, I don't have a good sense for what guarantees there are, other
than that what is specified in the docs. I consider everything else to
be internal & subject to change and resulting backwards incompatibility.
cheers,
--titus
--
C. Titus Brown, ctb at msu.edu
More information about the testing-in-python
mailing list