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