On May 23, 10:36 am, Antoon Pardon <[EMAIL PROTECTED]> wrote: > Some time ago I asked whether is would be possible that unittest would > perform the test in order of appearence in the file. > > The answers seemed to be negative. Since I really would like this > behaviour I took the trouble of looking throught the source and > I think I found a minor way to get this behaviour. > > Now my questions are: > > Are other people interrested in this behaviour? > Does the following patch has a chance of being introduced in the > standard python distribution? > > *** /usr/lib/python2.5/unittest.py 2008-04-17 16:26:37.000000000 +0200 > --- unittest.py 2008-05-23 11:19:57.000000000 +0200 > *************** > *** 570,575 **** > --- 570,577 ---- > """ > def isTestMethod(attrname, testCaseClass=testCaseClass, > prefix=self.testMethodPrefix): > return attrname.startswith(prefix) and > callable(getattr(testCaseClass, attrname)) > + def getlinenr(name): > + return getattr(testCaseClass, > name).im_func.func_code.co_firstlineno > testFnNames = filter(isTestMethod, dir(testCaseClass)) > for baseclass in testCaseClass.__bases__: > for testFnName in self.getTestCaseNames(baseclass): > *************** > *** 577,582 **** > --- 579,586 ---- > testFnNames.append(testFnName) > if self.sortTestMethodsUsing: > testFnNames.sort(self.sortTestMethodsUsing) > + else: > + testFnNames.sort(key=getlinenr) > return testFnNames
I second Roy's appreciation with you going to the trouble to post a patch. There is another problem with your code though, it is dependent on the CPython implementation. Currently unittest works *great* with IronPython, which your code wouldn't. Also, like others, I have had wonderful experiences of trying to track down test failures that depend on the order that tests run in. Having interdependencies between tests is a recipe for madness... Michael Foord http://www.ironpythoninaction.com/ -- http://mail.python.org/mailman/listinfo/python-list