fix(tests): use relevant BaseHandler.__init__ signature

fix breaking tests, change signature of BaseHandler
This commit is contained in:
mpa 2020-05-28 05:34:31 +04:00
parent 0b3702f658
commit de962d043d
No known key found for this signature in database
GPG key ID: BCCFBFCCC9B754A8
4 changed files with 17 additions and 11 deletions

View file

@ -1,5 +1,5 @@
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING, Any, Dict, Generic, TypeVar, cast
from typing import TYPE_CHECKING, Any, Dict, Generic, Optional, TypeVar, cast
from aiogram import Bot
from aiogram.api.types import Update
@ -18,12 +18,18 @@ class BaseHandler(BaseHandlerMixin[T], ABC):
Base class for all class-based handlers
"""
def __init__(self, event: T, requirements_data: Dict[str, Any], data: Dict[str, Any]) -> None:
def __init__(
self,
event: T,
requirements_data: Optional[Dict[str, Any]] = None,
data: Optional[Dict[str, Any]] = None,
) -> None:
self.event: T = event
self.data: Dict[str, Any] = data
self.data: Dict[str, Any] = data or {}
for req_attr, req in requirements_data.items():
setattr(self, req_attr, req)
if requirements_data:
for req_attr, req in requirements_data.items():
setattr(self, req_attr, req)
@property
def bot(self) -> Bot:

View file

@ -19,7 +19,7 @@ class TestBaseClassBasedHandler:
@pytest.mark.asyncio
async def test_base_handler(self):
event = Update(update_id=42)
handler = MyHandler(event=event, key=42)
handler = MyHandler(event=event, data=dict(key=42))
assert handler.event == event
assert handler.data["key"] == 42
@ -29,7 +29,7 @@ class TestBaseClassBasedHandler:
@pytest.mark.asyncio
async def test_bot_from_context(self):
event = Update(update_id=42)
handler = MyHandler(event=event, key=42)
handler = MyHandler(event=event, data=dict(key=42))
bot = Bot("42:TEST")
with pytest.raises(LookupError):
@ -42,7 +42,7 @@ class TestBaseClassBasedHandler:
async def test_bot_from_data(self):
event = Update(update_id=42)
bot = Bot("42:TEST")
handler = MyHandler(event=event, key=42, bot=bot)
handler = MyHandler(event=event, data=dict(key=42, bot=bot))
assert "bot" in handler.data
assert handler.bot == bot
@ -52,7 +52,7 @@ class TestBaseClassBasedHandler:
message_id=42, chat=Chat(id=42, type="private"), date=datetime.datetime.now()
)
update = Update(update_id=42, message=event)
handler = MyHandler(event=event, update=update)
handler = MyHandler(event=event, data=dict(update=update))
assert handler.event == event
assert handler.update == update

View file

@ -24,4 +24,4 @@ class TestCallbackQueryHandler:
assert self.message == self.message
return True
assert await MyHandler(event)
assert await MyHandler(event, {}, {})

View file

@ -44,7 +44,7 @@ class TestBaseMessageHandlerCommandMixin:
chat=Chat(id=42, type="private"),
from_user=User(id=42, is_bot=False, first_name="Test"),
),
command=CommandObject(prefix="/", command="command", args="args"),
data=dict(command=CommandObject(prefix="/", command="command", args="args")),
)
assert isinstance(handler.command, CommandObject)