def test_context(self): hook_a = mock.MagicMock() hook_b = mock.MagicMock() hook_a.context = {"hook_a": "foo", } hook_b.context = {"hook_b": "foo", } proxy = HookProxy([]) proxy._hooks = [hook_a, hook_b] self.assertDictEqual(proxy.context, {"hook_a": "foo", "hook_b": "foo"})
def test_is_valid(self): hook_a = mock.MagicMock() hook_b = mock.MagicMock() hook_a.is_valid.return_value = True hook_b.is_valid.return_value = True proxy = HookProxy([]) proxy._hooks = [hook_a, hook_b] self.assertTrue(proxy.is_valid()) hook_a.is_valid.assert_called_once_with() hook_b.is_valid.assert_called_once_with() hook_a.is_valid.return_value = False hook_b.is_valid.return_value = True hook_a.reset_mock() hook_b.reset_mock() self.assertFalse(proxy.is_valid()) hook_a.is_valid.assert_called_once_with() hook_b.is_valid.assert_called_once_with() hook_a.is_valid.return_value = True hook_b.is_valid.return_value = False hook_a.reset_mock() hook_b.reset_mock() self.assertFalse(proxy.is_valid()) hook_a.is_valid.assert_called_once_with() hook_b.is_valid.assert_called_once_with() hook_a.is_valid.return_value = False hook_b.is_valid.return_value = False hook_a.reset_mock() hook_b.reset_mock() self.assertFalse(proxy.is_valid()) hook_a.is_valid.assert_called_once_with() hook_b.is_valid.assert_called_once_with() # if there are no hooks registered, should be valid proxy2 = HookProxy([]) self.assertTrue(proxy2.is_valid())
def test_proxy_method(func_name): hook_a = mock.MagicMock() hook_b = mock.MagicMock() proxy = HookProxy([]) proxy._hooks = [hook_a, hook_b] func = getattr(proxy, func_name) func("foo", extra="bar") mocked = getattr(hook_a, func_name) mocked.assert_called_once_with("foo", extra="bar") mocked = getattr(hook_b, func_name) mocked.assert_called_once_with("foo", extra="bar")
def test_instance(self): hook_a = mock.MagicMock() hook_b = mock.MagicMock() proxy = HookProxy([hook_a, hook_b], "request", "foo", extra="bar") hook_a.assert_called_once_with("request", "foo", extra="bar") hook_b.assert_called_once_with("request", "foo", extra="bar")