Cover BaseBot context manager

This commit is contained in:
jrootjunior 2019-11-26 11:13:48 +02:00
parent b5ab2fd153
commit cd12b54ec2
3 changed files with 24 additions and 3 deletions

View file

@ -33,7 +33,7 @@ class BaseSession(abc.ABC):
raise Exception(response.description)
@abc.abstractmethod
async def close(self):
async def close(self): # pragma: no cover
pass
@abc.abstractmethod

View file

@ -165,13 +165,13 @@ class ListItem(Item):
You can use &, | and + operators for that.
"""
def add(self, other):
def add(self, other): # pragma: no cover
return self + other
def __get__(self, instance, owner):
return ItemsList(self._value)
def __getitem__(self, item):
def __getitem__(self, item): # pragma: no cover
# Only for IDE. This method is never be called.
return self._value

View file

@ -1,6 +1,7 @@
import pytest
from asynctest import CoroutineMock, patch
from aiogram import Bot
from aiogram.api.client.base import BaseBot
from aiogram.api.client.session.aiohttp import AiohttpSession
from aiogram.api.methods import GetMe
@ -23,3 +24,23 @@ class TestBaseBot:
) as mocked_make_request:
await base_bot.emit(method)
mocked_make_request.assert_awaited_with("TOKEN", method)
@pytest.mark.asyncio
async def test_close(self):
base_bot = BaseBot("TOKEN", session=AiohttpSession())
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("TOKEN", session=AiohttpSession()) as bot:
assert isinstance(bot, BaseBot)
mocked_close.assert_awaited()