On 8/15/06, Fergal Daly <[EMAIL PROTECTED]> wrote:
Where this becomes more important is when you start constructing suites automatically. For exampleclass SomeTest(unittest.TestCase): def __init__(self, data): self.data = data unittest.TestCase.__init__(self) def test_foo(self): # some tests on self.data def test_bar(self): # some tests on self.data list_of_data = [ ... ] suite = unittest.TestSuite() for data in list_of_data: suite.addTest( SomeTest(data) ) suite.run() now my suite looks like suite SomeTest SomeTest ... SomeTest line numbers are no good to me. I haven't ever done this in Python but I've done the equivalent in Perl. Basically as soon as you want to have tests that are driven by data sets rather than tests that are all explicitly written you need structure. It's also necessary for code reuse.
The solution to this particular issue would be to have your SomeTest class override TestCase.id(), TestCase.__str__() and/or TestCase.__repr__() to take into account the data attribute. On the other hand, I can see scenarios where being able to indicate which suite a test is in, for example, tests that depend on being run in a certain order. Collin Winter
