I think it's better to keep the BaseHandler class very minimalistic, and
not enforce/encourage a stricter approach. So all BaseHandler methods
will return a NotImplemented error and I'll leave it up to the handlers
extending it to implement any real logic. The ModelHandler on the other
hand, can already have concrete implementations.
Moved validate method to the BaseHandler and ModelHandler classes
Initial iteration of ModelHandler.validate()
For these kind of exceptions, I assign the *errors* attribute to the Exception object, for easier testing
Method ModelHandler.clean_models performs model cleaning, and is invoked by ModelHandler.validate
Refactored the tests
Updated the tests now that ModelHandler.validate() can raise exceptions
More tests for the ModelHandler.clean_models method
More explicit exceptions
More tests for ModelHandler.validate