mirror of https://github.com/Textualize/rich.git
36 lines
843 B
Python
36 lines
843 B
Python
import pytest
|
|
|
|
from rich.markup import MarkupError, _parse, render
|
|
from rich.text import Span
|
|
|
|
|
|
def test_parse():
|
|
result = list(_parse("[foo]hello[/foo][bar]world[/][[escaped]]"))
|
|
expected = [
|
|
(None, "[foo]"),
|
|
("hello", None),
|
|
(None, "[/foo]"),
|
|
(None, "[bar]"),
|
|
("world", None),
|
|
(None, "[/]"),
|
|
("[", None),
|
|
("escaped", None),
|
|
("]", None),
|
|
]
|
|
assert result == expected
|
|
|
|
|
|
def test_render():
|
|
result = render("[bold]FOO[/bold]")
|
|
assert str(result) == "FOO"
|
|
assert result.spans == [Span(0, 3, "bold")]
|
|
|
|
|
|
def test_markup_error():
|
|
with pytest.raises(MarkupError):
|
|
assert render("foo[/]")
|
|
with pytest.raises(MarkupError):
|
|
assert render("foo[/bar]")
|
|
with pytest.raises(MarkupError):
|
|
assert render("[foo]hello[/bar]")
|