1
0
Fork 0
terminaltables3/tests/test_base_table/test_gen_row_lines.py

87 lines
2.4 KiB
Python
Raw Normal View History

"""Test method in BaseTable class."""
import pytest
from terminaltables.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