Is it possible to create an abstract TestCase, that will have some test_* methods, but this TestCase won’t be called and those methods will only be used in subclasses? I think I am going to have one abstract TestCase in my test suite and it will be subclassed for a few different implementation of a single interface. This is why all test methods are the some, only one, internal method changes. How can I do it in elegant way?
Is it possible to create an abstract TestCase , that will have some test_*
Share
I didn’t quite understand what do you plan to do —
the rule of thumb is “not to be smart with tests” –
just have them there, plain written.
But to achieve what you want, if you inherit from unittest.TestCase, whenever you call unittest.main() your “abstract” class will be executed – I think this is the situation you want to avoid.
Just do this:
Create your “abstract” class inheriting from “object”, not from TestCase.
And for the actual “concrete” implementations, just use multiple inheritance:
inherit from both unittest.TestCase and from your abstract class.
update: reversed the inheritance order –
Abstractfirst so that its defintions are not overriden byTestCasedefaults, as well pointed in the comments bellow.