Posible solución implementada con decorators.
Pasan todos los tests.