Hello! I'm reading the documentation of unittest.TestSuite (Python 2 and 3), but I can't find any explicit sentence stating that TestSuite will honor the order. I can only read that TestSuite can group test cases together. Please blame it on my poor English skills if I'm not interpreting the documentation correctly.
My use case: my SUT is split into modules. Besides writing unit tests for each module, I want to write an integration test, and I also need to perform some actions between two calls to the SUT. In my case, the order of the execution is important. Now, the current implementation of TestSuite uses a list, internally, so, today, the order is honored if I create a TestSuite calling addTest() in the proper order, or if I pass a list to the constructor. I've seen examples like this: class MyTestCode(unittest.TestCase): def test_func_1(self): # do something to test func_1 on the SUT sut.func_1() self.assert(...) def perform_intermediate_step(self): # do something between func_1 and func_2 def test_func_2(self): # do something to test func_2 on the SUT sut.func_2() self.assert(...) suite = unittest.TestSuite() suite.addTest(MyTestCode("test_func_1")) suite.addTest(MyTestCode("perform_intermediate_step")) suite.addTest(MyTestCode("test_func_2")) Such an example works, today, since TestSuite uses a list, and addTest() appends to the list. My question is: is this something that I can rely on for the future? I definitely don't want to rely on the current implementation, unless I see it in the documentation. If it's something that I can't rely on for the future, then I'd rather write my test code in a different way. Regards, Francesco P.S.: I strongly believe that there are better ways to implement a test like the one I just described, but what I'm interested in now is whether TestSuite is meant to be future-proof for such a case. -- Francesco Russo The White Rabbit put on his spectacles. 'Where shall I begin, please your Majesty?' he asked. 'Begin at the beginning,' the King said gravely, 'and go on till you come to the end: then stop.' -- https://mail.python.org/mailman/listinfo/python-list