--- unittest.py.orig 2007-08-21 10:31:37.000000000 +0200 +++ unittest.py 2007-08-21 11:06:37.000000000 +0200 @@ -426,6 +426,23 @@ for test in tests: self.addTest(test) + def removeTest(self, test): + def removeFromList(testList, testToRemove): + for index,item in enumerate(testList): + if issubclass(item.__class__, TestCase) and str(item) == str(test): + del(testList[index]) + if issubclass(item.__class__, TestSuite): + removeFromList(item._tests, testToRemove) + + # sanity checks + if not callable(test): + raise TypeError("the test to remove must be callable") + if (isinstance(test, (type, types.ClassType)) and + issubclass(test, (TestCase, TestSuite))): + raise TypeError("TestCases and TestSuites must be instantiated " + "before passing them to removeTest()") + removeFromList(self._tests, test) + def run(self, result): for test in self._tests: if result.shouldStop: