summaryrefslogtreecommitdiffstats
path: root/tests/test_base_table/test_gen_row_lines.py
blob: 0d0f43c60cc99bab18d30c8a35b937212af3d238 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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