class TestEventMessage(TestCase): def setUp(self): self.elm = WebElement("tag") self.elm.js_exec = MagicMock() self.mock = MagicMock(_is_coroutine=False) self.elm.addEventListener("click", self.mock) self.msg = {"type": "event", "id": self.elm.rimo_id, "event": {"type": "click"}} self.event = Event(**self.msg.get("event")) def test_handle_event(self): self.elm.js_exec.assert_called_once_with("addEventListener", "click") self.elm.dispatchEvent(self.event) self.assertTrue(self.mock.called) def test_remove_event(self): self.elm.removeEventListener("click", self.mock) self.elm.js_exec.assert_called_with("removeEventListener", "click") self.elm.dispatchEvent(self.event) self.mock.assert_not_called()