aiogram/tests/test_api/test_client/test_default.py

43 lines
1.4 KiB
Python
Raw Normal View History

2024-03-09 00:40:46 +02:00
import pytest
2024-08-22 09:59:38 +07:00
from pydantic import ValidationError
2024-03-09 00:40:46 +02:00
2024-08-22 09:59:38 +07:00
from aiogram.client.default import DefaultBotProperties
from aiogram.default_annotations import DefaultLinkPreviewOptions, DefaultParseMode
2024-03-09 00:40:46 +02:00
from aiogram.enums import ParseMode
2024-08-22 09:59:38 +07:00
from aiogram.types import LinkPreviewOptions, TelegramObject
from tests.mocked_bot import MockedBot
2024-03-09 00:40:46 +02:00
class TestDefault:
2024-08-22 09:59:38 +07:00
def test_default_validation(self):
class TestObject(TelegramObject):
parse_mode: DefaultParseMode = None
obj1 = TestObject()
assert obj1.parse_mode is None
obj2 = TestObject(parse_mode=ParseMode.HTML)
assert obj2.parse_mode == ParseMode.HTML
obj3 = TestObject(parse_mode="HTML")
assert obj3.parse_mode == ParseMode.HTML
with pytest.raises(ValidationError):
TestObject(parse_mode=b"some invalid type")
2024-03-09 00:40:46 +02:00
2024-08-22 09:59:38 +07:00
def test_remain_value_after_dump_roundtrip(self):
bot = MockedBot(default=DefaultBotProperties())
2024-03-09 00:40:46 +02:00
2024-08-22 09:59:38 +07:00
def test_link_preview_options_defined(self):
class TestObject(TelegramObject):
options: DefaultLinkPreviewOptions = None
2024-03-09 00:40:46 +02:00
2024-08-22 09:59:38 +07:00
# won't raise error
TestObject(options=LinkPreviewOptions())
2024-03-09 00:40:46 +02:00
class TestDefaultBotProperties:
2024-08-22 09:59:38 +07:00
def test_is_empty(self):
2024-03-09 00:40:46 +02:00
default_bot_properties = DefaultBotProperties()
2024-08-22 09:59:38 +07:00
assert default_bot_properties.is_empty
2024-03-09 00:40:46 +02:00
2024-08-22 09:59:38 +07:00
default_bot_properties = DefaultBotProperties(protect_content=True)
assert not default_bot_properties.is_empty