Esempio n. 1
0
    def test_vk_exec_loop(self):
        mngr = VKManager("token")

        mngr.running = True

        async def raw_request(_, method, **kwargs):
            self.assertEqual(method, "execute")
            self.assertEqual(kwargs["code"], "return [API.fake.method({}),];")

            mngr.running = False

            return VKResponse(False, (), {"response": ["response"]})

        mngr.raw_request = types.MethodType(raw_request, mngr)

        req = VKRequest("fake.method", {})

        mngr.requests_queue.append(req)

        tasks = []

        def ensure(task):
            _task = asyncio.ensure_future(task, loop=self.loop)
            tasks.append(_task)
            return _task

        self.loop.run_until_complete(mngr._exec_loop())

        self.loop.run_until_complete(asyncio.gather(*tasks))

        response = self.loop.run_until_complete(req)

        self.assertFalse(response.error)
        self.assertEqual(response.response, "response")
Esempio n. 2
0
    def test_vk_startup(self):
        mngr = VKManager("token")

        bg_coroutines = []

        asyncio_ensure_future = asyncio.ensure_future

        def ensure(task):
            _task = asyncio_ensure_future(task)

            bg_coroutines.append(_task)

            return _task

        asyncio.ensure_future = ensure

        self.loop.run_until_complete(mngr.startup(None))

        asyncio.ensure_future = asyncio_ensure_future

        mngr.running = False

        self.loop.run_until_complete(bg_coroutines[0])

        self.assertEqual(len(bg_coroutines), 1)
Esempio n. 3
0
    def test_vk_exec_loop_error(self):
        mngr = VKManager("token")

        mngr.running = True

        async def raw_request(_, method, **kwargs):
            self.assertEqual(method, "execute")
            self.assertEqual(
                kwargs["code"],
                'return [API.users.get({"user_ids": "sdfsdfsdfsdfsdf"}),];')

            mngr.running = False

            raw_response = {
                "response": [False],
                "execute_errors": [{
                    "method": "users.get",
                    "error_code": 113,
                    "error_msg": "Invalid user id"
                }, {
                    "method": "execute",
                    "error_code": 113,
                    "error_msg": "Invalid user id"
                }]
            }

            return VKResponse(
                True, (("VK_req", raw_response.get("error", "")),
                       ("VK_exe", raw_response.get("execute_errors", ""))),
                raw_response.get("response", ""))

        mngr.raw_request = types.MethodType(raw_request, mngr)

        req = VKRequest("users.get", {"user_ids": "sdfsdfsdfsdfsdf"})

        mngr.requests_queue.append(req)

        logging.disable(logging.ERROR)

        tasks = []

        def ensure(task):
            _task = asyncio.ensure_future(task, loop=self.loop)
            tasks.append(_task)
            return _task

        self.loop.run_until_complete(mngr._exec_loop())

        self.loop.run_until_complete(asyncio.gather(*tasks))

        logging.disable(logging.INFO)

        response = self.loop.run_until_complete(req)

        self.assertTrue(response.error)
        self.assertEqual(response.errors[0][0], "VK_req")
        self.assertEqual(response.response, "")