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>"],
|
2021-01-26 21:20:52 +02:00
|
|
|
[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>"],
|
2021-06-15 01:45:31 +03:00
|
|
|
[pre, ("test", "test"), " ", "```\ntest test\n```"],
|
2020-04-12 20:27:32 +03:00
|
|
|
[hpre, ("test", "test"), " ", "<pre>test test</pre>"],
|
2021-01-26 21:20:52 +02:00
|
|
|
[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">​</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
|