Note: it may be necessary to update the core classes for that.
All abstract classes should be "declared" as abstract.
So far, they just have methods that raise error.MethodShouldBeRedefined exceptions if they're used. This kind of Exception will become useless, hence remove them.
Classes that should become abstract are:
Explanation / documentation:
http://dbader.org/blog/abstract-base-classes-in-python
http://docs.python.org/3.4/library/abc.html
Tests: maybe check that instanciation any of these classes raises a TypeError (see tests/00_libs/test_startup_actions.py for an example how to test if an Exception is raised)
When this is done, there shouldn't be any "MethodShouldBeRedefined" throughout all code (if there are, I may have forgotten to list some classes). And as a side effect, the unit tests' coverage rate may increase a little bit (don't know if the pass statements in abstract methods are counted or not).
Diff:
Diff:
Diff:
Diff:
Diff: