mirror of https://github.com/Textualize/rich.git
61 lines
1.6 KiB
Python
61 lines
1.6 KiB
Python
import pytest
|
|
|
|
from rich.padding import Padding
|
|
from rich.console import Console, ConsoleDimensions, ConsoleOptions
|
|
from rich.style import Style
|
|
from rich.segment import Segment
|
|
|
|
|
|
def test_repr():
|
|
padding = Padding("foo", (1, 2))
|
|
assert isinstance(repr(padding), str)
|
|
|
|
|
|
def test_indent():
|
|
indent_result = Padding.indent("test", 4)
|
|
assert indent_result.top == 0
|
|
assert indent_result.right == 0
|
|
assert indent_result.bottom == 0
|
|
assert indent_result.left == 4
|
|
|
|
|
|
def test_unpack():
|
|
assert Padding.unpack(3) == (3, 3, 3, 3)
|
|
assert Padding.unpack((3,)) == (3, 3, 3, 3)
|
|
assert Padding.unpack((3, 4)) == (3, 4, 3, 4)
|
|
assert Padding.unpack((3, 4, 5, 6)) == (3, 4, 5, 6)
|
|
with pytest.raises(ValueError):
|
|
Padding.unpack((1, 2, 3))
|
|
|
|
|
|
def test_expand_false():
|
|
console = Console(width=100, color_system=None)
|
|
console.begin_capture()
|
|
console.print(Padding("foo", 1, expand=False))
|
|
assert console.end_capture() == " \n foo \n \n"
|
|
|
|
|
|
def test_rich_console():
|
|
renderable = "test renderable"
|
|
style = Style(color="red")
|
|
options = ConsoleOptions(
|
|
ConsoleDimensions(80, 25),
|
|
max_height=25,
|
|
legacy_windows=False,
|
|
min_width=10,
|
|
max_width=20,
|
|
is_terminal=False,
|
|
encoding="utf-8",
|
|
)
|
|
|
|
expected_outputs = [
|
|
Segment(renderable, style=style),
|
|
Segment(" " * (20 - len(renderable)), style=style),
|
|
Segment("\n", style=None),
|
|
]
|
|
padding_generator = Padding(renderable, style=style).__rich_console__(
|
|
Console(), options
|
|
)
|
|
for output, expected in zip(padding_generator, expected_outputs):
|
|
assert output == expected
|