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)
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())
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())
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())
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" })
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())
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())