Exemplo n.º 1
0
def test_outer_borders(outer_border):
    """Test left/right/top/bottom table borders.

    :param bool outer_border: Passed to table.
    """
    table_data = [
        ['Name', 'Color', 'Type'],
        ['Avocado', 'green', 'nut'],
        ['Tomato', 'red', 'fruit'],
        ['Lettuce', 'green', 'vegetable'],
    ]
    table = BaseTable(table_data, 'Example Table')
    table.outer_border = outer_border
    inner_widths, inner_heights, outer_widths = max_dimensions(
        table_data, table.padding_left, table.padding_right)[:3]
    actual = flatten(table.gen_table(inner_widths, inner_heights,
                                     outer_widths))

    # Determine expected.
    if outer_border:
        expected = ('+Example Table----+-----------+\n'
                    '| Name    | Color | Type      |\n'
                    '+---------+-------+-----------+\n'
                    '| Avocado | green | nut       |\n'
                    '| Tomato  | red   | fruit     |\n'
                    '| Lettuce | green | vegetable |\n'
                    '+---------+-------+-----------+')
    else:
        expected = (' Name    | Color | Type      \n'
                    '---------+-------+-----------\n'
                    ' Avocado | green | nut       \n'
                    ' Tomato  | red   | fruit     \n'
                    ' Lettuce | green | vegetable ')

    assert actual == expected
Exemplo n.º 2
0
def test_outer_borders(outer_border):
    """Test left/right/top/bottom table borders.

    :param bool outer_border: Passed to table.
    """
    table_data = [
        ['Name', 'Color', 'Type'],
        ['Avocado', 'green', 'nut'],
        ['Tomato', 'red', 'fruit'],
        ['Lettuce', 'green', 'vegetable'],
    ]
    table = BaseTable(table_data, 'Example Table')
    table.outer_border = outer_border
    inner_widths, inner_heights, outer_widths = max_dimensions(table_data, table.padding_left, table.padding_right)[:3]
    actual = flatten(table.gen_table(inner_widths, inner_heights, outer_widths))

    # Determine expected.
    if outer_border:
        expected = (
            '+Example Table----+-----------+\n'
            '| Name    | Color | Type      |\n'
            '+---------+-------+-----------+\n'
            '| Avocado | green | nut       |\n'
            '| Tomato  | red   | fruit     |\n'
            '| Lettuce | green | vegetable |\n'
            '+---------+-------+-----------+'
        )
    else:
        expected = (
            ' Name    | Color | Type      \n'
            '---------+-------+-----------\n'
            ' Avocado | green | nut       \n'
            ' Tomato  | red   | fruit     \n'
            ' Lettuce | green | vegetable '
        )

    assert actual == expected
Exemplo n.º 3
0
def test_one_no_rows(mode, bare):
    """Test with one or no rows.

    :param str mode: Type of table contents to test.
    :param bool bare: Disable padding/borders.
    """
    if mode == 'row':
        table_data = [
            ['Avocado', 'green', 'nut'],
        ]
    elif mode == 'one':
        table_data = [
            ['Avocado'],
        ]
    elif mode == 'blank':
        table_data = [
            [''],
        ]
    elif mode == 'empty':
        table_data = [
            [],
        ]
    else:
        table_data = []
    table = BaseTable(table_data)
    if bare:
        table.inner_column_border = False
        table.inner_footing_row_border = False
        table.inner_heading_row_border = False
        table.inner_row_border = False
        table.outer_border = False
        table.padding_left = 0
        table.padding_right = 0
    inner_widths, inner_heights, outer_widths = max_dimensions(
        table_data, table.padding_left, table.padding_right)[:3]
    actual = flatten(table.gen_table(inner_widths, inner_heights,
                                     outer_widths))

    # Determine expected.
    if mode == 'row':
        if bare:
            expected = ('Avocadogreennut')
        else:
            expected = ('+---------+-------+-----+\n'
                        '| Avocado | green | nut |\n'
                        '+---------+-------+-----+')
    elif mode == 'one':
        if bare:
            expected = ('Avocado')
        else:
            expected = ('+---------+\n' '| Avocado |\n' '+---------+')
    elif mode == 'blank':  # Remember there's still padding.
        if bare:
            expected = ('')
        else:
            expected = ('+--+\n' '|  |\n' '+--+')
    elif mode == 'empty':
        if bare:
            expected = ('')
        else:
            expected = ('++\n' '||\n' '++')
    else:
        if bare:
            expected = ('')
        else:
            expected = ('++\n' '++')

    assert actual == expected
Exemplo n.º 4
0
def test_inner_row_borders(inner_heading_row_border, inner_footing_row_border,
                           inner_row_border):
    """Test heading/footing/row borders.

    :param bool inner_heading_row_border: Passed to table.
    :param bool inner_footing_row_border: Passed to table.
    :param bool inner_row_border: Passed to table.
    """
    table_data = [
        ['Name', 'Color', 'Type'],
        ['Avocado', 'green', 'nut'],
        ['Tomato', 'red', 'fruit'],
        ['Lettuce', 'green', 'vegetable'],
    ]
    table = BaseTable(table_data)
    table.inner_heading_row_border = inner_heading_row_border
    table.inner_footing_row_border = inner_footing_row_border
    table.inner_row_border = inner_row_border
    inner_widths, inner_heights, outer_widths = max_dimensions(
        table_data, table.padding_left, table.padding_right)[:3]
    actual = flatten(table.gen_table(inner_widths, inner_heights,
                                     outer_widths))

    # Determine expected.
    if inner_row_border:
        expected = ('+---------+-------+-----------+\n'
                    '| Name    | Color | Type      |\n'
                    '+---------+-------+-----------+\n'
                    '| Avocado | green | nut       |\n'
                    '+---------+-------+-----------+\n'
                    '| Tomato  | red   | fruit     |\n'
                    '+---------+-------+-----------+\n'
                    '| Lettuce | green | vegetable |\n'
                    '+---------+-------+-----------+')
    elif inner_heading_row_border and inner_footing_row_border:
        expected = ('+---------+-------+-----------+\n'
                    '| Name    | Color | Type      |\n'
                    '+---------+-------+-----------+\n'
                    '| Avocado | green | nut       |\n'
                    '| Tomato  | red   | fruit     |\n'
                    '+---------+-------+-----------+\n'
                    '| Lettuce | green | vegetable |\n'
                    '+---------+-------+-----------+')
    elif inner_heading_row_border:
        expected = ('+---------+-------+-----------+\n'
                    '| Name    | Color | Type      |\n'
                    '+---------+-------+-----------+\n'
                    '| Avocado | green | nut       |\n'
                    '| Tomato  | red   | fruit     |\n'
                    '| Lettuce | green | vegetable |\n'
                    '+---------+-------+-----------+')
    elif inner_footing_row_border:
        expected = ('+---------+-------+-----------+\n'
                    '| Name    | Color | Type      |\n'
                    '| Avocado | green | nut       |\n'
                    '| Tomato  | red   | fruit     |\n'
                    '+---------+-------+-----------+\n'
                    '| Lettuce | green | vegetable |\n'
                    '+---------+-------+-----------+')
    else:
        expected = ('+---------+-------+-----------+\n'
                    '| Name    | Color | Type      |\n'
                    '| Avocado | green | nut       |\n'
                    '| Tomato  | red   | fruit     |\n'
                    '| Lettuce | green | vegetable |\n'
                    '+---------+-------+-----------+')

    assert actual == expected
Exemplo n.º 5
0
def test_one_no_rows(mode, bare):
    """Test with one or no rows.

    :param str mode: Type of table contents to test.
    :param bool bare: Disable padding/borders.
    """
    if mode == 'row':
        table_data = [
            ['Avocado', 'green', 'nut'],
        ]
    elif mode == 'one':
        table_data = [
            ['Avocado'],
        ]
    elif mode == 'blank':
        table_data = [
            [''],
        ]
    elif mode == 'empty':
        table_data = [
            [],
        ]
    else:
        table_data = [
        ]
    table = BaseTable(table_data)
    if bare:
        table.inner_column_border = False
        table.inner_footing_row_border = False
        table.inner_heading_row_border = False
        table.inner_row_border = False
        table.outer_border = False
        table.padding_left = 0
        table.padding_right = 0
    inner_widths, inner_heights, outer_widths = max_dimensions(table_data, table.padding_left, table.padding_right)[:3]
    actual = flatten(table.gen_table(inner_widths, inner_heights, outer_widths))

    # Determine expected.
    if mode == 'row':
        if bare:
            expected = (
                'Avocadogreennut'
            )
        else:
            expected = (
                '+---------+-------+-----+\n'
                '| Avocado | green | nut |\n'
                '+---------+-------+-----+'
            )
    elif mode == 'one':
        if bare:
            expected = (
                'Avocado'
            )
        else:
            expected = (
                '+---------+\n'
                '| Avocado |\n'
                '+---------+'
            )
    elif mode == 'blank':  # Remember there's still padding.
        if bare:
            expected = (
                ''
            )
        else:
            expected = (
                '+--+\n'
                '|  |\n'
                '+--+'
            )
    elif mode == 'empty':
        if bare:
            expected = (
                ''
            )
        else:
            expected = (
                '++\n'
                '||\n'
                '++'
            )
    else:
        if bare:
            expected = (
                ''
            )
        else:
            expected = (
                '++\n'
                '++'
            )

    assert actual == expected
Exemplo n.º 6
0
def test_inner_row_borders(inner_heading_row_border, inner_footing_row_border, inner_row_border):
    """Test heading/footing/row borders.

    :param bool inner_heading_row_border: Passed to table.
    :param bool inner_footing_row_border: Passed to table.
    :param bool inner_row_border: Passed to table.
    """
    table_data = [
        ['Name', 'Color', 'Type'],
        ['Avocado', 'green', 'nut'],
        ['Tomato', 'red', 'fruit'],
        ['Lettuce', 'green', 'vegetable'],
    ]
    table = BaseTable(table_data)
    table.inner_heading_row_border = inner_heading_row_border
    table.inner_footing_row_border = inner_footing_row_border
    table.inner_row_border = inner_row_border
    inner_widths, inner_heights, outer_widths = max_dimensions(table_data, table.padding_left, table.padding_right)[:3]
    actual = flatten(table.gen_table(inner_widths, inner_heights, outer_widths))

    # Determine expected.
    if inner_row_border:
        expected = (
            '+---------+-------+-----------+\n'
            '| Name    | Color | Type      |\n'
            '+---------+-------+-----------+\n'
            '| Avocado | green | nut       |\n'
            '+---------+-------+-----------+\n'
            '| Tomato  | red   | fruit     |\n'
            '+---------+-------+-----------+\n'
            '| Lettuce | green | vegetable |\n'
            '+---------+-------+-----------+'
        )
    elif inner_heading_row_border and inner_footing_row_border:
        expected = (
            '+---------+-------+-----------+\n'
            '| Name    | Color | Type      |\n'
            '+---------+-------+-----------+\n'
            '| Avocado | green | nut       |\n'
            '| Tomato  | red   | fruit     |\n'
            '+---------+-------+-----------+\n'
            '| Lettuce | green | vegetable |\n'
            '+---------+-------+-----------+'
        )
    elif inner_heading_row_border:
        expected = (
            '+---------+-------+-----------+\n'
            '| Name    | Color | Type      |\n'
            '+---------+-------+-----------+\n'
            '| Avocado | green | nut       |\n'
            '| Tomato  | red   | fruit     |\n'
            '| Lettuce | green | vegetable |\n'
            '+---------+-------+-----------+'
        )
    elif inner_footing_row_border:
        expected = (
            '+---------+-------+-----------+\n'
            '| Name    | Color | Type      |\n'
            '| Avocado | green | nut       |\n'
            '| Tomato  | red   | fruit     |\n'
            '+---------+-------+-----------+\n'
            '| Lettuce | green | vegetable |\n'
            '+---------+-------+-----------+'
        )
    else:
        expected = (
            '+---------+-------+-----------+\n'
            '| Name    | Color | Type      |\n'
            '| Avocado | green | nut       |\n'
            '| Tomato  | red   | fruit     |\n'
            '| Lettuce | green | vegetable |\n'
            '+---------+-------+-----------+'
        )

    assert actual == expected