aiogram/tests/test_api/test_client/test_base_bot.py

58 lines
1.8 KiB
Python
Raw Normal View History

import copy
2019-11-17 23:37:24 +02:00
import pytest
from asynctest import CoroutineMock, patch
2019-11-26 11:13:48 +02:00
from aiogram import Bot
2019-11-17 23:37:24 +02:00
from aiogram.api.client.base import BaseBot
from aiogram.api.client.session.aiohttp import AiohttpSession
from aiogram.api.methods import GetMe
class TestBaseBot:
def test_init(self):
base_bot = BaseBot("42:TEST")
2019-11-17 23:37:24 +02:00
assert isinstance(base_bot.session, AiohttpSession)
assert base_bot.id == 42
def test_hashable(self):
base_bot = BaseBot("42:TEST")
assert hash(base_bot) == hash("42:TEST")
def test_equals(self):
base_bot = BaseBot("42:TEST")
assert base_bot == BaseBot("42:TEST")
2019-11-17 23:37:24 +02:00
@pytest.mark.asyncio
async def test_emit(self):
base_bot = BaseBot("42:TEST")
2019-11-17 23:37:24 +02:00
method = GetMe()
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.make_request",
new_callable=CoroutineMock,
) as mocked_make_request:
await base_bot.emit(method)
mocked_make_request.assert_awaited_with("42:TEST", method)
2019-11-26 11:13:48 +02:00
@pytest.mark.asyncio
async def test_close(self):
base_bot = BaseBot("42:TEST", session=AiohttpSession())
2019-11-26 11:13:48 +02:00
await base_bot.session.create_session()
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
) as mocked_close:
await base_bot.close()
mocked_close.assert_awaited()
@pytest.mark.asyncio
async def test_context_manager(self):
with patch(
"aiogram.api.client.session.aiohttp.AiohttpSession.close", new_callable=CoroutineMock
) as mocked_close:
async with BaseBot("42:TEST", session=AiohttpSession()) as bot:
2019-11-26 11:13:48 +02:00
assert isinstance(bot, BaseBot)
mocked_close.assert_awaited()