def setUp(self): self.target = EventTarget() self.mock = MagicMock(_is_coroutine=False) self.e = Event("click")
class TestEventTarget(TestCase): def setUp(self): self.target = EventTarget() self.mock = MagicMock(_is_coroutine=False) self.e = Event("click") def test_event_dispatch(self): self.target.addEventListener("click", self.mock) self.assertEqual(len(self.target._listeners), 1) self.target.dispatchEvent(self.e) self.mock.assert_called_once_with(self.e) def test_event_dispatch_empty(self): self.target.dispatchEvent(self.e) self.mock.assert_not_called() def test_event_dispatch_multi(self): e1 = Event("click") e2 = Event("click") self.target.addEventListener("click", self.mock) self.target.dispatchEvent(e1) self.target.dispatchEvent(e2) self.assertEqual(self.mock.call_count, 2) self.mock.assert_has_calls([call(e1), call(e2)]) def test_defferent_event_dispatch(self): mock1 = MagicMock(_is_coroutine=False) mock2 = MagicMock(_is_coroutine=False) e1 = Event("click") e2 = Event("event") self.target.addEventListener("click", mock1) self.target.addEventListener("event", mock2) self.assertEqual(len(self.target._listeners), 2) self.target.dispatchEvent(e1) mock1.assert_called_once_with(e1) mock2.assert_not_called() self.target.dispatchEvent(e2) mock1.assert_called_once_with(e1) mock2.assert_called_once_with(e2) def test_remove_event(self): self.target.addEventListener("click", self.mock) self.target.removeEventListener("click", self.mock) self.target.dispatchEvent(self.e) self.mock.assert_not_called() def test_remove_event_multi(self): self.target.addEventListener("click", self.mock) self.assertEqual(len(self.target._listeners), 1) self.target.removeEventListener("click", self.mock) self.assertEqual(len(self.target._listeners), 0) self.target.dispatchEvent(self.e) self.mock.assert_not_called()