1
0
Fork 0
terminaltables3/tests/test_base_table/test_gen_row_lines.py
Daniel Baumann 07735c967b
Merging upstream version 4.0.0 (Closes: #1095814).
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-12 15:00:49 +01:00

86 lines
2.4 KiB
Python

"""Test method in BaseTable class."""
import pytest
from terminaltables3.base_table import BaseTable
@pytest.mark.parametrize("style", ["heading", "footing", "row"])
def test_single_line(style):
"""Test with single-line row.
:param str style: Passed to method.
"""
row = ["Row One Column One", "Two", "Three"]
table = BaseTable([row])
actual = [tuple(i) for i in table.gen_row_lines(row, style, [18, 3, 5], 1)]
expected = [
("|", " Row One Column One ", "|", " Two ", "|", " Three ", "|"),
]
assert actual == expected
@pytest.mark.parametrize("style", ["heading", "footing", "row"])
def test_multi_line(style):
"""Test with multi-line row.
:param str style: Passed to method.
"""
row = ["Row One\nColumn One", "Two", "Three"]
table = BaseTable([row])
actual = [tuple(i) for i in table.gen_row_lines(row, style, [10, 3, 5], 2)]
expected = [
("|", " Row One ", "|", " Two ", "|", " Three ", "|"),
("|", " Column One ", "|", " ", "|", " ", "|"),
]
assert actual == expected
@pytest.mark.parametrize("style", ["heading", "footing", "row"])
def test_no_padding_no_borders(style):
"""Test without padding or borders.
:param str style: Passed to method.
"""
row = ["Row One\nColumn One", "Two", "Three"]
table = BaseTable([row])
table.inner_column_border = False
table.outer_border = False
table.padding_left = 0
table.padding_right = 0
actual = [tuple(i) for i in table.gen_row_lines(row, style, [10, 3, 5], 2)]
expected = [
("Row One ", "Two", "Three"),
("Column One", " ", " "),
]
assert actual == expected
@pytest.mark.parametrize("style", ["heading", "footing", "row"])
def test_uneven(style):
"""Test with row missing cells.
:param str style: Passed to method.
"""
row = ["Row One Column One"]
table = BaseTable([row])
actual = [tuple(i) for i in table.gen_row_lines(row, style, [18, 3, 5], 1)]
expected = [
("|", " Row One Column One ", "|", " ", "|", " ", "|"),
]
assert actual == expected
@pytest.mark.parametrize("style", ["heading", "footing", "row"])
def test_empty_table(style):
"""Test empty table.
:param str style: Passed to method.
"""
row = []
table = BaseTable([row])
actual = [tuple(i) for i in table.gen_row_lines(row, style, [], 0)]
expected = [
("|", "|"),
]
assert actual == expected