コード例 #1
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_update_longpoll_data_exception(self):
        mngr = VKManager("token")

        async def raw_request(self, method, **kwargs):
            return VKResponse(True, (), "")

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

        with self.assertRaises(ValueError):
            self.loop.run_until_complete(mngr.update_longpoll_data())

        self.loop.run_until_complete(mngr.dispose())

        self.assertEqual(mngr.longpoll, None)
コード例 #2
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_receiver(self):
        mngr = VKManager("token")

        async def prepare():
            mngr.longpoll = {"ts": 0, "server": "server", "key": "key"}

            class FakeSession:
                def post(self, url):
                    class FakePost:
                        def __init__(self, url):
                            pass

                        async def __aenter__(self):
                            class FakeResponse:
                                async def json(self):
                                    return {
                                        "ts":
                                        "4",
                                        "updates": [{
                                            "type": "type",
                                            "object": "object"
                                        }, "update2"]
                                    }

                            return FakeResponse()

                        async def __aexit__(self, exc_type, exc, tb):
                            pass

                    return FakePost(url)

                async def close(self):
                    pass

            mngr.session = FakeSession()

        self.loop.run_until_complete(prepare())

        updates = self.loop.run_until_complete(mngr.receiver())

        self.assertEqual(updates, [{"type": "type", "object": "object"}])
        self.assertEqual(mngr.longpoll["ts"], "4")

        self.loop.run_until_complete(mngr.dispose())
コード例 #3
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_receiver_failed(self):
        mngr = VKManager("token")

        async def prepare():
            mngr.longpoll = {"ts": 0, "server": "server", "key": "key"}

            class FakeSession:
                def post(self, url):
                    class FakePost:
                        def __init__(self, url):
                            pass

                        async def __aenter__(self):
                            class FakeResponse:
                                async def json(self):
                                    return {"failed": 2}

                            return FakeResponse()

                        async def __aexit__(self, exc_type, exc, tb):
                            pass

                    return FakePost(url)

                async def close(self):
                    pass

            mngr.session = FakeSession()

            async def update_longpoll_data(self):
                self.longpoll = "updated"

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

        self.loop.run_until_complete(prepare())

        updates = self.loop.run_until_complete(mngr.receiver())

        self.assertEqual(updates, ())
        self.assertEqual(mngr.longpoll, "updated")

        self.loop.run_until_complete(mngr.dispose())
コード例 #4
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_get_file_from_attachment_empty(self):
        mngr = VKManager("token")

        async def test():
            mngr.session = aiohttp.ClientSession()

            env = VKEnvironment(mngr)

            res = await env.get_file_from_attachment(None)

            self.assertEqual(res, None)

            res = await env.get_file_from_attachment(
                Attachment("photo", 13, 1, None, None, {}))

            self.assertEqual(res, None)

        self.loop.run_until_complete(test())

        self.loop.run_until_complete(mngr.dispose())
コード例 #5
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_update_longpoll_data(self):
        mngr = VKManager("token")

        async def raw_request(self, method, **kwargs):
            return VKResponse(False, (), {
                "key": "key",
                "server": "server",
                "ts": "0"
            })

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

        self.loop.run_until_complete(mngr.update_longpoll_data())

        self.loop.run_until_complete(mngr.dispose())

        self.assertEqual(mngr.longpoll, {
            "key": "key",
            "server": "server",
            "ts": "0"
        })
コード例 #6
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_get_receiver_coroutine_function(self):
        mngr = VKManager("token")

        async def raw_request(self, method, **kwargs):
            return VKResponse(False, (), [{"id": 1, "name": "keks"}])

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

        async def update_longpoll_data(self):
            self.longpoll = "updated"

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

        receiver = self.loop.run_until_complete(
            mngr.get_receiver_coroutine_function())

        self.assertEqual(mngr.longpoll, "updated")
        self.assertEqual(mngr.receiver, receiver)
        self.assertEqual(mngr.group_id, 1)

        self.loop.run_until_complete(mngr.dispose())
コード例 #7
0
ファイル: test_manager_vk.py プロジェクト: nm17/kutana
    def test_vk_manager_raw_request(self):
        mngr = VKManager("token")

        class FakeSession:
            def post(self, url, data):
                class FakePost:
                    def __init__(self, url, data):
                        pass

                    async def __aenter__(self):
                        class FakeResponse:
                            status = 200

                            async def text(self):
                                return json.dumps({
                                    "error": {
                                        "error_code":
                                        5,
                                        "error_msg":
                                        "User authori"
                                        "zation failed: invalid access_token (4).",
                                        "request_params": [{
                                            "key": "oauth",
                                            "value": "1"
                                        }, {
                                            "key":
                                            "method",
                                            "value":
                                            "any.method"
                                        }, {
                                            "key": "v",
                                            "value": "5.80"
                                        }, {
                                            "key": "a1",
                                            "value": "v1"
                                        }, {
                                            "key": "a2",
                                            "value": "v2"
                                        }]
                                    }
                                })

                        return FakeResponse()

                    async def __aexit__(self, exc_type, exc, tb):
                        pass

                return FakePost(url, data)

            async def close(self):
                pass

        async def test():
            mngr.session = FakeSession()

            set_logger_level(logging.CRITICAL)

            response = await mngr.raw_request("any.method", a1="v1", a2="v2")

            set_logger_level(logging.ERROR)

            self.assertEqual(response.errors[0][1]["error_code"], 5)

        self.loop.run_until_complete(test())

        self.loop.run_until_complete(mngr.dispose())