def test_call(self): def func_a(*args, **kwargs): self._args_a = args self._kwargs_a = kwargs return "im func_a" def func_b(*args, **kwargs): self._args_b = args self._kwargs_b = kwargs return "im func_b" # initial hook should not have registered callbacks myhook = TemplateHook() self.assertListEqual(myhook(), []) # calling hook should return a list of callback responses myhook.register(func_a) myhook.register(func_b) self.assertListEqual(myhook(), ["im func_a", "im func_b"]) # passing arguments to callbacks should be ok myhook("foo", extra="bar") self.assertEqual(self._args_a, ("foo", )) self.assertDictEqual(self._kwargs_a, {'extra': "bar", }) self.assertEqual(self._args_b, ("foo", )) self.assertDictEqual(self._kwargs_b, {'extra': "bar", })
def test_call(self): def func_a(*args, **kwargs): self._args_a = args self._kwargs_a = kwargs return "im func_a" def func_b(*args, **kwargs): self._args_b = args self._kwargs_b = kwargs return "im func_b" # initial hook should not have registered callbacks myhook = TemplateHook() self.assertListEqual(myhook(), []) # calling hook should return a list of callback responses myhook.register(func_a) myhook.register(func_b) self.assertListEqual(myhook(), ["im func_a", "im func_b"]) # passing arguments to callbacks should be ok myhook("foo", extra="bar") self.assertEqual(self._args_a, ("foo", )) self.assertDictEqual(self._kwargs_a, { 'extra': "bar", }) self.assertEqual(self._args_b, ("foo", )) self.assertDictEqual(self._kwargs_b, { 'extra': "bar", })
def test_register(self): def func(): pass myhook = TemplateHook() myhook.register(func) self.assertListEqual(myhook._registry, [func, ]) # try to register a non callable self.assertRaises(AssertionError, myhook.register, "foo")
def test_register(self): def func(): pass myhook = TemplateHook() myhook.register(func) self.assertListEqual(myhook._registry, [ func, ]) # try to register a non callable self.assertRaises(AssertionError, myhook.register, "foo")
def test_unregister(self): def func(): pass # register new callback myhook = TemplateHook() myhook.register(func) self.assertListEqual(myhook._registry, [func, ]) # unregister callback myhook.unregister(func) self.assertListEqual(myhook._registry, []) # try to unregister twice should do nothing myhook.unregister(func) self.assertListEqual(myhook._registry, [])
def test_unregister(self): def func(): pass # register new callback myhook = TemplateHook() myhook.register(func) self.assertListEqual(myhook._registry, [ func, ]) # unregister callback myhook.unregister(func) self.assertListEqual(myhook._registry, []) # try to unregister twice should do nothing myhook.unregister(func) self.assertListEqual(myhook._registry, [])