mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-12 10:11:52 +00:00
Reworked request builder (#1142)
* Reworked request builder * Added more default values * Update tests * Fixed timestamp * Fixed Py3.8 support * Describe changes
This commit is contained in:
parent
924a83966d
commit
fea1b7b0a3
300 changed files with 1003 additions and 3448 deletions
|
|
@ -4,32 +4,35 @@ from typing import TYPE_CHECKING, AsyncGenerator, Deque, Optional, Type
|
|||
from aiogram import Bot
|
||||
from aiogram.client.session.base import BaseSession
|
||||
from aiogram.methods import TelegramMethod
|
||||
from aiogram.methods.base import Request, Response, TelegramType
|
||||
from aiogram.types import UNSET, ResponseParameters, User
|
||||
from aiogram.methods.base import Response, TelegramType
|
||||
from aiogram.types import UNSET_PARSE_MODE, ResponseParameters, User
|
||||
|
||||
|
||||
class MockedSession(BaseSession):
|
||||
def __init__(self):
|
||||
super(MockedSession, self).__init__()
|
||||
self.responses: Deque[Response[TelegramType]] = deque()
|
||||
self.requests: Deque[Request] = deque()
|
||||
self.requests: Deque[TelegramMethod[TelegramType]] = deque()
|
||||
self.closed = True
|
||||
|
||||
def add_result(self, response: Response[TelegramType]) -> Response[TelegramType]:
|
||||
self.responses.append(response)
|
||||
return response
|
||||
|
||||
def get_request(self) -> Request:
|
||||
def get_request(self) -> TelegramMethod[TelegramType]:
|
||||
return self.requests.pop()
|
||||
|
||||
async def close(self):
|
||||
self.closed = True
|
||||
|
||||
async def make_request(
|
||||
self, bot: Bot, method: TelegramMethod[TelegramType], timeout: Optional[int] = UNSET
|
||||
self,
|
||||
bot: Bot,
|
||||
method: TelegramMethod[TelegramType],
|
||||
timeout: Optional[int] = UNSET_PARSE_MODE,
|
||||
) -> TelegramType:
|
||||
self.closed = False
|
||||
self.requests.append(method.build_request(bot))
|
||||
self.requests.append(method)
|
||||
response: Response[TelegramType] = self.responses.pop()
|
||||
self.check_response(
|
||||
method=method, status_code=response.error_code, content=response.json()
|
||||
|
|
@ -86,5 +89,5 @@ class MockedBot(Bot):
|
|||
self.session.add_result(response)
|
||||
return response
|
||||
|
||||
def get_request(self) -> Request:
|
||||
def get_request(self) -> TelegramMethod[TelegramType]:
|
||||
return self.session.get_request()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue