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
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
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
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