def test_set_decorated(self): """ A decorator should be able to mark an object as decorated to prevent redecoration in the future. """ sig = '__mumbo_jumbo__' dec = BaseDecorator(sig) o = FakeObject() dec._set_decorated(o) self.assertTrue(hasattr(o, sig))
def test__call__stale(self): """ Tests the __call_method on a stale(decorated) object """ dec = BaseDecorator('__mumbo_jumbo__') dec._set_decorated = mock.Mock() dec._decorate = mock.Mock() dec._has_decorated = mock.Mock(return_value=True) o = FakeObject() config = {} dec(o, config) dec._set_decorated.assert_not_called() dec._has_decorated.assert_called_with(o) dec._decorate.assert_not_called()
def test__call__fresh(self): """ Tests the __call__ method on a fresh(undecorated) object. """ dec = BaseDecorator('__mumbo_jumbo__') dec._set_decorated = mock.Mock() dec._has_decorated = mock.Mock(return_value=False) o = FakeObject() dec._decorate = mock.Mock(return_value=o) config = {} dec(o, config) dec._set_decorated.assert_called_with(o) dec._decorate.assert_called_once_with(o, config) dec._has_decorated.assert_called_with(o)