summaryrefslogtreecommitdiffstats
path: root/tests/test_base_table/test_gen_row_lines.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_base_table/test_gen_row_lines.py')
-rw-r--r--tests/test_base_table/test_gen_row_lines.py86
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