mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-12 10:11:52 +00:00
Merge pull request #318 from aiogram/dev-3.x-refactor-sessions
Dev 3.x refactor sessions
This commit is contained in:
commit
05dd42712d
7 changed files with 151 additions and 44 deletions
|
|
@ -83,6 +83,22 @@ class TestAiohttpSession:
|
|||
aiohttp_session = await session.create_session()
|
||||
assert isinstance(aiohttp_session.connector, aiohttp_socks.ChainProxyConnector)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_reset_connector(self):
|
||||
session = AiohttpSession()
|
||||
assert session._should_reset_connector
|
||||
await session.create_session()
|
||||
assert session._should_reset_connector is False
|
||||
await session.close()
|
||||
assert session._should_reset_connector is False
|
||||
|
||||
assert session.proxy is None
|
||||
session.proxy = "socks5://auth:auth@proxy.url/"
|
||||
assert session._should_reset_connector
|
||||
await session.create_session()
|
||||
assert session._should_reset_connector is False
|
||||
await session.close()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_close_session(self):
|
||||
session = AiohttpSession()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import datetime
|
||||
import json
|
||||
from typing import AsyncContextManager, AsyncGenerator
|
||||
|
||||
import pytest
|
||||
|
|
@ -35,13 +36,56 @@ class TestBaseSession:
|
|||
session = CustomSession()
|
||||
assert session.api == PRODUCTION
|
||||
|
||||
def test_default_props(self):
|
||||
session = CustomSession()
|
||||
assert session.api == PRODUCTION
|
||||
assert session.json_loads == json.loads
|
||||
assert session.json_dumps == json.dumps
|
||||
|
||||
def custom_loads(*_):
|
||||
return json.loads
|
||||
|
||||
def custom_dumps(*_):
|
||||
return json.dumps
|
||||
|
||||
session.json_dumps = custom_dumps
|
||||
assert session.json_dumps == custom_dumps == session._json_dumps
|
||||
session.json_loads = custom_loads
|
||||
assert session.json_loads == custom_loads == session._json_loads
|
||||
|
||||
different_session = CustomSession()
|
||||
assert all(
|
||||
not hasattr(different_session, attr) for attr in ("_json_loads", "_json_dumps", "_api")
|
||||
)
|
||||
|
||||
def test_timeout(self):
|
||||
session = CustomSession()
|
||||
assert session.timeout == session.default_timeout == CustomSession.default_timeout
|
||||
|
||||
session.default_timeout = float(65.0_0) # mypy will complain
|
||||
assert session.timeout != session.default_timeout
|
||||
|
||||
CustomSession.default_timeout = float(68.0_0)
|
||||
assert session.timeout == CustomSession.default_timeout
|
||||
|
||||
session.timeout = float(71.0_0)
|
||||
assert session.timeout != session.default_timeout
|
||||
del session.timeout
|
||||
CustomSession.default_timeout = session.default_timeout + 100
|
||||
assert (
|
||||
session.timeout != BaseSession.default_timeout
|
||||
and session.timeout == CustomSession.default_timeout
|
||||
)
|
||||
|
||||
def test_init_custom_api(self):
|
||||
api = TelegramAPIServer(
|
||||
base="http://example.com/{token}/{method}",
|
||||
file="http://example.com/{token}/file/{path{",
|
||||
file="http://example.com/{token}/file/{path}",
|
||||
)
|
||||
session = CustomSession(api=api)
|
||||
session = CustomSession()
|
||||
session.api = api
|
||||
assert session.api == api
|
||||
assert "example.com" in session.api.base
|
||||
|
||||
def test_prepare_value(self):
|
||||
session = CustomSession()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue