mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from aiogram.client.default import DefaultBotProperties
|
|
from aiogram.default_annotations import DefaultLinkPreviewOptions, DefaultParseMode
|
|
from aiogram.enums import ParseMode
|
|
from aiogram.types import LinkPreviewOptions, TelegramObject
|
|
from tests.mocked_bot import MockedBot
|
|
|
|
|
|
class TestDefault:
|
|
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")
|
|
|
|
def test_remain_value_after_dump_roundtrip(self):
|
|
bot = MockedBot(default=DefaultBotProperties())
|
|
|
|
def test_link_preview_options_defined(self):
|
|
class TestObject(TelegramObject):
|
|
options: DefaultLinkPreviewOptions = None
|
|
|
|
# won't raise error
|
|
TestObject(options=LinkPreviewOptions())
|
|
|
|
|
|
class TestDefaultBotProperties:
|
|
def test_is_empty(self):
|
|
default_bot_properties = DefaultBotProperties()
|
|
assert default_bot_properties.is_empty
|
|
|
|
default_bot_properties = DefaultBotProperties(protect_content=True)
|
|
assert not default_bot_properties.is_empty
|