diff options
Diffstat (limited to '')
-rw-r--r-- | tests/test_padding.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/test_padding.py b/tests/test_padding.py new file mode 100644 index 0000000..d4508e9 --- /dev/null +++ b/tests/test_padding.py @@ -0,0 +1,59 @@ +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), + 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 |