rich/tests/test_rule_in_table.py

77 lines
2.2 KiB
Python

import io
from textwrap import dedent
import pytest
from rich import box
from rich.console import Console
from rich.rule import Rule
from rich.table import Table
@pytest.mark.parametrize("expand_kwarg", ({}, {"expand": False}))
def test_rule_in_unexpanded_table(expand_kwarg):
console = Console(width=32, file=io.StringIO(), legacy_windows=False, _environ={})
table = Table(box=box.ASCII, show_header=False, **expand_kwarg)
table.add_column()
table.add_column()
table.add_row("COL1", "COL2")
table.add_row("COL1", Rule())
table.add_row("COL1", "COL2")
console.print(table)
expected = dedent(
"""\
+-------------+
| COL1 | COL2 |
| COL1 | ──── |
| COL1 | COL2 |
+-------------+
"""
)
result = console.file.getvalue()
assert result == expected
def test_rule_in_expanded_table():
console = Console(width=32, file=io.StringIO(), legacy_windows=False, _environ={})
table = Table(box=box.ASCII, expand=True, show_header=False)
table.add_column()
table.add_column()
table.add_row("COL1", "COL2")
table.add_row("COL1", Rule(style=None))
table.add_row("COL1", "COL2")
console.print(table)
expected = dedent(
"""\
+------------------------------+
| COL1 | COL2 |
| COL1 | ──────────── |
| COL1 | COL2 |
+------------------------------+
"""
)
result = console.file.getvalue()
assert result == expected
def test_rule_in_ratio_table():
console = Console(width=32, file=io.StringIO(), legacy_windows=False, _environ={})
table = Table(box=box.ASCII, expand=True, show_header=False)
table.add_column(ratio=1)
table.add_column()
table.add_row("COL1", "COL2")
table.add_row("COL1", Rule(style=None))
table.add_row("COL1", "COL2")
console.print(table)
expected = dedent(
"""\
+------------------------------+
| COL1 | COL2 |
| COL1 | ──── |
| COL1 | COL2 |
+------------------------------+
"""
)
result = console.file.getvalue()
assert result == expected