class TestQuery(TestCase): def setUp(self): super().setUp() set_server_type("tornado") _tornado.connections.append(MagicMock()) self.elm = WebElement("tag") self.elm.js_exec = MagicMock() self.msg = {"type": "response", "id": self.elm.rimo_id} def test_query(self): fut = self.elm.js_query("test") self.elm.js_exec.assert_called_once_with("test", 0) self.msg["reqid"] = 0 self.msg["data"] = 1 self.elm.on_response(self.msg) self.assertEqual(fut.result(), 1) @sync @asyncio.coroutine def test_scroll(self): fut = self.elm.scrollX() self.assertFalse(fut.done()) self.msg["reqid"] = 0 self.msg["data"] = {"x": 1} self.elm.on_response(self.msg) x = yield from fut self.assertEqual(x, {"x": 1})