aiogram/tests/test_utils/test_markdown.py

63 lines
2 KiB
Python
Raw Normal View History

2019-12-25 23:12:08 +02:00
from typing import Any, Callable, Optional, Tuple
import pytest
2020-04-12 20:27:32 +03:00
from aiogram.utils.markdown import (
bold,
code,
hbold,
hcode,
hide_link,
hitalic,
hlink,
hpre,
hstrikethrough,
hunderline,
italic,
link,
pre,
strikethrough,
text,
underline,
)
2019-12-25 23:12:08 +02:00
class TestMarkdown:
@pytest.mark.parametrize(
"func,args,sep,result",
[
2020-04-12 20:27:32 +03:00
[text, ("test", "test"), " ", "test test"],
[text, ("test", "test"), "\n", "test\ntest"],
[text, ("test", "test"), None, "test test"],
[bold, ("test", "test"), " ", "*test test*"],
[hbold, ("test", "test"), " ", "<b>test test</b>"],
[italic, ("test", "test"), " ", "_\rtest test_\r"],
2020-04-12 20:27:32 +03:00
[hitalic, ("test", "test"), " ", "<i>test test</i>"],
[code, ("test", "test"), " ", "`test test`"],
[hcode, ("test", "test"), " ", "<code>test test</code>"],
[pre, ("test", "test"), " ", "```\ntest test\n```"],
2020-04-12 20:27:32 +03:00
[hpre, ("test", "test"), " ", "<pre>test test</pre>"],
[underline, ("test", "test"), " ", "__\rtest test__\r"],
2020-04-12 20:27:32 +03:00
[hunderline, ("test", "test"), " ", "<u>test test</u>"],
[strikethrough, ("test", "test"), " ", "~test test~"],
[hstrikethrough, ("test", "test"), " ", "<s>test test</s>"],
[link, ("test", "https://aiogram.dev"), None, "[test](https://aiogram.dev)"],
2019-12-25 23:12:08 +02:00
[
2020-04-12 20:27:32 +03:00
hlink,
2019-12-25 23:12:08 +02:00
("test", "https://aiogram.dev"),
None,
'<a href="https://aiogram.dev">test</a>',
],
[
2020-04-12 20:27:32 +03:00
hide_link,
2019-12-25 23:12:08 +02:00
("https://aiogram.dev",),
None,
'<a href="https://aiogram.dev">&#8203;</a>',
],
],
)
def test_formatter(
self, func: Callable[[Any], Any], args: Tuple[str], sep: Optional[str], result: str
):
assert func(*args, **({"sep": sep} if sep is not None else {})) == result # type: ignore