More tests for defaults

This commit is contained in:
JRoot Junior 2024-03-09 00:40:46 +02:00
parent ee71117807
commit bc08d90ce5
No known key found for this signature in database
GPG key ID: 738964250D5FF6E2
3 changed files with 69 additions and 2 deletions

View file

@ -286,7 +286,7 @@ class Bot:
):
warnings.warn(
"Passing `parse_mode`, `disable_web_page_preview` or `protect_content` "
"to Bot initializer is deprecated. This arguments will be removed in 3.5.0 version\n"
"to Bot initializer is deprecated. This arguments will be removed in 3.7.0 version\n"
"Use `default=DefaultBotProperties(...)` instead.",
category=DeprecationWarning,
stacklevel=2,

View file

@ -48,7 +48,6 @@ class DefaultBotProperties:
"""Protects content from copying."""
allow_sending_without_reply: Optional[bool] = None
"""Allows to send messages without reply."""
link_preview: Optional[LinkPreviewOptions] = None
"""Link preview settings."""
link_preview_is_disabled: Optional[bool] = None

View file

@ -0,0 +1,68 @@
import sys
import pytest
from aiogram.client.default import Default, DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.types import LinkPreviewOptions
class TestDefault:
def test_init(self):
default = Default("test")
assert default._name == "test"
def test_name_property(self):
default = Default("test")
assert default.name == "test"
def test_str(self):
default = Default("test")
assert str(default) == "Default('test')"
def test_repr(self):
default = Default("test")
assert repr(default) == "<Default('test')>"
class TestDefaultBotProperties:
def test_post_init_empty(self):
default_bot_properties = DefaultBotProperties()
assert default_bot_properties.link_preview is None
def test_post_init_auto_fill_link_preview(self):
default_bot_properties = DefaultBotProperties(
link_preview_is_disabled=True,
link_preview_prefer_small_media=True,
link_preview_prefer_large_media=True,
link_preview_show_above_text=True,
)
assert default_bot_properties.link_preview == LinkPreviewOptions(
is_disabled=True,
prefer_small_media=True,
prefer_large_media=True,
show_above_text=True,
)
def test_getitem(self):
default_bot_properties = DefaultBotProperties(
parse_mode=ParseMode.HTML,
link_preview_is_disabled=True,
link_preview_prefer_small_media=True,
link_preview_prefer_large_media=True,
link_preview_show_above_text=True,
)
assert default_bot_properties["parse_mode"] == ParseMode.HTML
assert default_bot_properties["link_preview_is_disabled"] is True
assert default_bot_properties["link_preview_prefer_small_media"] is True
assert default_bot_properties["link_preview_prefer_large_media"] is True
assert default_bot_properties["link_preview_show_above_text"] is True
@pytest.mark.skipif(sys.version_info < (3, 10), reason="requires python3.10 or higher")
def test_dataclass_creation_3_10_plus(self):
params = DefaultBotProperties.__dataclass_params__
assert params.slots is True
assert params.kw_only is True