summaryrefslogtreecommitdiff
path: root/tests/test_table_creator.py
diff options
context:
space:
mode:
authorxNinjaKittyx <xNinjaKittyx@users.noreply.github.com>2020-12-15 17:21:33 -0800
committerxNinjaKittyx <xNinjaKittyx@users.noreply.github.com>2020-12-15 18:20:13 -0800
commit9aa54a5b27468d61337528cb1e1b5b9b11a80978 (patch)
tree567693115cc101efb9254a96d96d80e9f9ccd557 /tests/test_table_creator.py
parent03c65c60b39e369958b056c5c844d36d515c8a63 (diff)
downloadcmd2-git-ci_improvements.tar.gz
Adds pre-commit config to run various lintersci_improvements
This ads black, isort, pyupgrade, and flake8 to pre-commit-config.yaml There are also some small changes to travis.yml and tasks.py to reduce some repeated configurations that should be consolidated into setup.cfg. Most other changes are automated by the linter scripts.
Diffstat (limited to 'tests/test_table_creator.py')
-rw-r--r--tests/test_table_creator.py298
1 files changed, 170 insertions, 128 deletions
diff --git a/tests/test_table_creator.py b/tests/test_table_creator.py
index 0d2edfb2..c83aee2c 100644
--- a/tests/test_table_creator.py
+++ b/tests/test_table_creator.py
@@ -46,15 +46,30 @@ def test_column_creation():
def test_column_alignment():
- column_1 = Column("Col 1", width=10,
- header_horiz_align=HorizontalAlignment.LEFT, header_vert_align=VerticalAlignment.TOP,
- data_horiz_align=HorizontalAlignment.LEFT, data_vert_align=VerticalAlignment.TOP)
- column_2 = Column("Col 2", width=10,
- header_horiz_align=HorizontalAlignment.CENTER, header_vert_align=VerticalAlignment.MIDDLE,
- data_horiz_align=HorizontalAlignment.CENTER, data_vert_align=VerticalAlignment.MIDDLE)
- column_3 = Column("Col 3", width=10,
- header_horiz_align=HorizontalAlignment.RIGHT, header_vert_align=VerticalAlignment.BOTTOM,
- data_horiz_align=HorizontalAlignment.RIGHT, data_vert_align=VerticalAlignment.BOTTOM)
+ column_1 = Column(
+ "Col 1",
+ width=10,
+ header_horiz_align=HorizontalAlignment.LEFT,
+ header_vert_align=VerticalAlignment.TOP,
+ data_horiz_align=HorizontalAlignment.LEFT,
+ data_vert_align=VerticalAlignment.TOP,
+ )
+ column_2 = Column(
+ "Col 2",
+ width=10,
+ header_horiz_align=HorizontalAlignment.CENTER,
+ header_vert_align=VerticalAlignment.MIDDLE,
+ data_horiz_align=HorizontalAlignment.CENTER,
+ data_vert_align=VerticalAlignment.MIDDLE,
+ )
+ column_3 = Column(
+ "Col 3",
+ width=10,
+ header_horiz_align=HorizontalAlignment.RIGHT,
+ header_vert_align=VerticalAlignment.BOTTOM,
+ data_horiz_align=HorizontalAlignment.RIGHT,
+ data_vert_align=VerticalAlignment.BOTTOM,
+ )
column_4 = Column("Three\nline\nheader", width=10)
columns = [column_1, column_2, column_3, column_4]
@@ -68,16 +83,20 @@ def test_column_alignment():
# Create a header row
header = tc.generate_row()
- assert header == ('Col 1 Three \n'
- ' Col 2 line \n'
- ' Col 3 header ')
+ assert header == (
+ 'Col 1 Three \n'
+ ' Col 2 line \n'
+ ' Col 3 header '
+ )
# Create a data row
row_data = ["Val 1", "Val 2", "Val 3", "Three\nline\ndata"]
row = tc.generate_row(row_data=row_data)
- assert row == ('Val 1 Three \n'
- ' Val 2 line \n'
- ' Val 3 data ')
+ assert row == (
+ 'Val 1 Three \n'
+ ' Val 2 line \n'
+ ' Val 3 data '
+ )
def test_wrap_text():
@@ -87,19 +106,12 @@ def test_wrap_text():
# Test normal wrapping
row_data = ['Some text to wrap\nA new line that will wrap\nNot wrap\n 1 2 3']
row = tc.generate_row(row_data=row_data)
- assert row == ('Some text \n'
- 'to wrap \n'
- 'A new line\n'
- 'that will \n'
- 'wrap \n'
- 'Not wrap \n'
- ' 1 2 3 ')
+ assert row == ('Some text \n' 'to wrap \n' 'A new line\n' 'that will \n' 'wrap \n' 'Not wrap \n' ' 1 2 3 ')
# Test preserving a multiple space sequence across a line break
row_data = ['First last one']
row = tc.generate_row(row_data=row_data)
- assert row == ('First \n'
- ' last one ')
+ assert row == ('First \n' ' last one ')
def test_wrap_text_max_lines():
@@ -109,32 +121,27 @@ def test_wrap_text_max_lines():
# Test not needing to truncate the final line
row_data = ['First line last line']
row = tc.generate_row(row_data=row_data)
- assert row == ('First line\n'
- 'last line ')
+ assert row == ('First line\n' 'last line ')
# Test having to truncate the last word because it's too long for the final line
row_data = ['First line last lineextratext']
row = tc.generate_row(row_data=row_data)
- assert row == ('First line\n'
- 'last line…')
+ assert row == ('First line\n' 'last line…')
# Test having to truncate the last word because it fits the final line but there is more text not being included
row_data = ['First line thistxtfit extra']
row = tc.generate_row(row_data=row_data)
- assert row == ('First line\n'
- 'thistxtfi…')
+ assert row == ('First line\n' 'thistxtfi…')
# Test having to truncate the last word because it fits the final line but there are more lines not being included
row_data = ['First line thistxtfit\nextra']
row = tc.generate_row(row_data=row_data)
- assert row == ('First line\n'
- 'thistxtfi…')
+ assert row == ('First line\n' 'thistxtfi…')
# Test having space left on the final line and adding an ellipsis because there are more lines not being included
row_data = ['First line last line\nextra line']
row = tc.generate_row(row_data=row_data)
- assert row == ('First line\n'
- 'last line…')
+ assert row == ('First line\n' 'last line…')
def test_wrap_long_word():
@@ -147,8 +154,7 @@ def test_wrap_long_word():
# Test header row
header = tc.generate_row()
- assert header == ('LongColumn \n'
- 'Name Col 2 ')
+ assert header == ('LongColumn \n' 'Name Col 2 ')
# Test data row
row_data = list()
@@ -160,9 +166,22 @@ def test_wrap_long_word():
row_data.append("Word LongerThan10")
row = tc.generate_row(row_data=row_data)
- expected = (ansi.RESET_ALL + ansi.fg.green + "LongerThan" + ansi.RESET_ALL + " Word \n"
- + ansi.RESET_ALL + ansi.fg.green + "10" + ansi.fg.reset + ansi.RESET_ALL + ' ' + ansi.RESET_ALL + ' LongerThan\n'
- ' 10 ')
+ expected = (
+ ansi.RESET_ALL
+ + ansi.fg.green
+ + "LongerThan"
+ + ansi.RESET_ALL
+ + " Word \n"
+ + ansi.RESET_ALL
+ + ansi.fg.green
+ + "10"
+ + ansi.fg.reset
+ + ansi.RESET_ALL
+ + ' '
+ + ansi.RESET_ALL
+ + ' LongerThan\n'
+ ' 10 '
+ )
assert row == expected
@@ -191,8 +210,7 @@ def test_wrap_long_word_max_data_lines():
row_data.append("A LongerThan10RunsOverLast")
row = tc.generate_row(row_data=row_data)
- assert row == ('LongerThan LongerThan LongerThan A LongerT…\n'
- '10FitsLast 10FitsLas… 10RunsOve… ')
+ assert row == ('LongerThan LongerThan LongerThan A LongerT…\n' '10FitsLast 10FitsLas… 10RunsOve… ')
def test_wrap_long_char_wider_than_max_width():
@@ -235,8 +253,7 @@ def test_tabs():
column_2 = Column("Col 2")
tc = TableCreator([column_1, column_2], tab_width=2)
- row = tc.generate_row(fill_char='\t', pre_line='\t',
- inter_cell='\t', post_line='\t')
+ row = tc.generate_row(fill_char='\t', pre_line='\t', inter_cell='\t', post_line='\t')
assert row == ' Col 1 Col 2 '
@@ -252,67 +269,74 @@ def test_simple_table_creation():
st = SimpleTable([column_1, column_2])
table = st.generate_table(row_data)
- assert table == ('Col 1 Col 2 \n'
- '----------------------------------\n'
- 'Col 1 Row 1 Col 2 Row 1 \n'
- '\n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == (
+ 'Col 1 Col 2 \n'
+ '----------------------------------\n'
+ 'Col 1 Row 1 Col 2 Row 1 \n'
+ '\n'
+ 'Col 1 Row 2 Col 2 Row 2 '
+ )
# Custom divider
st = SimpleTable([column_1, column_2], divider_char='─')
table = st.generate_table(row_data)
- assert table == ('Col 1 Col 2 \n'
- '──────────────────────────────────\n'
- 'Col 1 Row 1 Col 2 Row 1 \n'
- '\n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == (
+ 'Col 1 Col 2 \n'
+ '──────────────────────────────────\n'
+ 'Col 1 Row 1 Col 2 Row 1 \n'
+ '\n'
+ 'Col 1 Row 2 Col 2 Row 2 '
+ )
# No divider
st = SimpleTable([column_1, column_2], divider_char=None)
table = st.generate_table(row_data)
- assert table == ('Col 1 Col 2 \n'
- 'Col 1 Row 1 Col 2 Row 1 \n'
- '\n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == (
+ 'Col 1 Col 2 \n' 'Col 1 Row 1 Col 2 Row 1 \n' '\n' 'Col 1 Row 2 Col 2 Row 2 '
+ )
# No row spacing
st = SimpleTable([column_1, column_2])
table = st.generate_table(row_data, row_spacing=0)
- assert table == ('Col 1 Col 2 \n'
- '----------------------------------\n'
- 'Col 1 Row 1 Col 2 Row 1 \n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == (
+ 'Col 1 Col 2 \n'
+ '----------------------------------\n'
+ 'Col 1 Row 1 Col 2 Row 1 \n'
+ 'Col 1 Row 2 Col 2 Row 2 '
+ )
# No header
st = SimpleTable([column_1, column_2])
table = st.generate_table(row_data, include_header=False)
- assert table == ('Col 1 Row 1 Col 2 Row 1 \n'
- '\n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == ('Col 1 Row 1 Col 2 Row 1 \n' '\n' 'Col 1 Row 2 Col 2 Row 2 ')
# Wide custom divider (divider needs no padding)
st = SimpleTable([column_1, column_2], divider_char='深')
table = st.generate_table(row_data)
- assert table == ('Col 1 Col 2 \n'
- '深深深深深深深深深深深深深深深深深\n'
- 'Col 1 Row 1 Col 2 Row 1 \n'
- '\n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == (
+ 'Col 1 Col 2 \n'
+ '深深深深深深深深深深深深深深深深深\n'
+ 'Col 1 Row 1 Col 2 Row 1 \n'
+ '\n'
+ 'Col 1 Row 2 Col 2 Row 2 '
+ )
# Wide custom divider (divider needs padding)
column_2 = Column("Col 2", width=17)
st = SimpleTable([column_1, column_2], divider_char='深')
table = st.generate_table(row_data)
- assert table == ('Col 1 Col 2 \n'
- '深深深深深深深深深深深深深深深深深 \n'
- 'Col 1 Row 1 Col 2 Row 1 \n'
- '\n'
- 'Col 1 Row 2 Col 2 Row 2 ')
+ assert table == (
+ 'Col 1 Col 2 \n'
+ '深深深深深深深深深深深深深深深深深 \n'
+ 'Col 1 Row 1 Col 2 Row 1 \n'
+ '\n'
+ 'Col 1 Row 2 Col 2 Row 2 '
+ )
# Invalid divider character
with pytest.raises(TypeError) as excinfo:
@@ -363,44 +387,52 @@ def test_bordered_table_creation():
# Default options
bt = BorderedTable([column_1, column_2])
table = bt.generate_table(row_data)
- assert table == ('╔═════════════════╤═════════════════╗\n'
- '║ Col 1 │ Col 2 ║\n'
- '╠═════════════════╪═════════════════╣\n'
- '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
- '╟─────────────────┼─────────────────╢\n'
- '║ Col 1 Row 2 │ Col 2 Row 2 ║\n'
- '╚═════════════════╧═════════════════╝')
+ assert table == (
+ '╔═════════════════╤═════════════════╗\n'
+ '║ Col 1 │ Col 2 ║\n'
+ '╠═════════════════╪═════════════════╣\n'
+ '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
+ '╟─────────────────┼─────────────────╢\n'
+ '║ Col 1 Row 2 │ Col 2 Row 2 ║\n'
+ '╚═════════════════╧═════════════════╝'
+ )
# No column borders
bt = BorderedTable([column_1, column_2], column_borders=False)
table = bt.generate_table(row_data)
- assert table == ('╔══════════════════════════════════╗\n'
- '║ Col 1 Col 2 ║\n'
- '╠══════════════════════════════════╣\n'
- '║ Col 1 Row 1 Col 2 Row 1 ║\n'
- '╟──────────────────────────────────╢\n'
- '║ Col 1 Row 2 Col 2 Row 2 ║\n'
- '╚══════════════════════════════════╝')
+ assert table == (
+ '╔══════════════════════════════════╗\n'
+ '║ Col 1 Col 2 ║\n'
+ '╠══════════════════════════════════╣\n'
+ '║ Col 1 Row 1 Col 2 Row 1 ║\n'
+ '╟──────────────────────────────────╢\n'
+ '║ Col 1 Row 2 Col 2 Row 2 ║\n'
+ '╚══════════════════════════════════╝'
+ )
# No header
bt = BorderedTable([column_1, column_2])
table = bt.generate_table(row_data, include_header=False)
- assert table == ('╔═════════════════╤═════════════════╗\n'
- '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
- '╟─────────────────┼─────────────────╢\n'
- '║ Col 1 Row 2 │ Col 2 Row 2 ║\n'
- '╚═════════════════╧═════════════════╝')
+ assert table == (
+ '╔═════════════════╤═════════════════╗\n'
+ '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
+ '╟─────────────────┼─────────────────╢\n'
+ '║ Col 1 Row 2 │ Col 2 Row 2 ║\n'
+ '╚═════════════════╧═════════════════╝'
+ )
# Non-default padding
bt = BorderedTable([column_1, column_2], padding=2)
table = bt.generate_table(row_data)
- assert table == ('╔═══════════════════╤═══════════════════╗\n'
- '║ Col 1 │ Col 2 ║\n'
- '╠═══════════════════╪═══════════════════╣\n'
- '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
- '╟───────────────────┼───────────────────╢\n'
- '║ Col 1 Row 2 │ Col 2 Row 2 ║\n'
- '╚═══════════════════╧═══════════════════╝')
+ assert table == (
+ '╔═══════════════════╤═══════════════════╗\n'
+ '║ Col 1 │ Col 2 ║\n'
+ '╠═══════════════════╪═══════════════════╣\n'
+ '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
+ '╟───────────────────┼───────────────────╢\n'
+ '║ Col 1 Row 2 │ Col 2 Row 2 ║\n'
+ '╚═══════════════════╧═══════════════════╝'
+ )
# Invalid padding
with pytest.raises(ValueError) as excinfo:
@@ -457,50 +489,60 @@ def test_alternating_table_creation():
# Default options
at = AlternatingTable([column_1, column_2])
table = at.generate_table(row_data)
- assert table == ('╔═════════════════╤═════════════════╗\n'
- '║ Col 1 │ Col 2 ║\n'
- '╠═════════════════╪═════════════════╣\n'
- '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
- '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m │ \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
- '╚═════════════════╧═════════════════╝')
+ assert table == (
+ '╔═════════════════╤═════════════════╗\n'
+ '║ Col 1 │ Col 2 ║\n'
+ '╠═════════════════╪═════════════════╣\n'
+ '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
+ '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m │ \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
+ '╚═════════════════╧═════════════════╝'
+ )
# Other bg colors
at = AlternatingTable([column_1, column_2], bg_odd=ansi.bg.bright_blue, bg_even=ansi.bg.green)
table = at.generate_table(row_data)
- assert table == ('╔═════════════════╤═════════════════╗\n'
- '║ Col 1 │ Col 2 ║\n'
- '╠═════════════════╪═════════════════╣\n'
- '\x1b[104m║ \x1b[49m\x1b[0m\x1b[104mCol 1 Row 1\x1b[49m\x1b[0m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[0m\x1b[104m │ \x1b[49m\x1b[0m\x1b[104mCol 2 Row 1\x1b[49m\x1b[0m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[0m\x1b[104m ║\x1b[49m\n'
- '\x1b[42m║ \x1b[49m\x1b[0m\x1b[42mCol 1 Row 2\x1b[49m\x1b[0m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[0m\x1b[42m │ \x1b[49m\x1b[0m\x1b[42mCol 2 Row 2\x1b[49m\x1b[0m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[0m\x1b[42m ║\x1b[49m\n'
- '╚═════════════════╧═════════════════╝')
+ assert table == (
+ '╔═════════════════╤═════════════════╗\n'
+ '║ Col 1 │ Col 2 ║\n'
+ '╠═════════════════╪═════════════════╣\n'
+ '\x1b[104m║ \x1b[49m\x1b[0m\x1b[104mCol 1 Row 1\x1b[49m\x1b[0m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[0m\x1b[104m │ \x1b[49m\x1b[0m\x1b[104mCol 2 Row 1\x1b[49m\x1b[0m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[104m \x1b[49m\x1b[0m\x1b[104m ║\x1b[49m\n'
+ '\x1b[42m║ \x1b[49m\x1b[0m\x1b[42mCol 1 Row 2\x1b[49m\x1b[0m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[0m\x1b[42m │ \x1b[49m\x1b[0m\x1b[42mCol 2 Row 2\x1b[49m\x1b[0m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[42m \x1b[49m\x1b[0m\x1b[42m ║\x1b[49m\n'
+ '╚═════════════════╧═════════════════╝'
+ )
# No column borders
at = AlternatingTable([column_1, column_2], column_borders=False)
table = at.generate_table(row_data)
- assert table == ('╔══════════════════════════════════╗\n'
- '║ Col 1 Col 2 ║\n'
- '╠══════════════════════════════════╣\n'
- '║ Col 1 Row 1 Col 2 Row 1 ║\n'
- '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
- '╚══════════════════════════════════╝')
+ assert table == (
+ '╔══════════════════════════════════╗\n'
+ '║ Col 1 Col 2 ║\n'
+ '╠══════════════════════════════════╣\n'
+ '║ Col 1 Row 1 Col 2 Row 1 ║\n'
+ '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
+ '╚══════════════════════════════════╝'
+ )
# No header
at = AlternatingTable([column_1, column_2])
table = at.generate_table(row_data, include_header=False)
- assert table == ('╔═════════════════╤═════════════════╗\n'
- '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
- '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m │ \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
- '╚═════════════════╧═════════════════╝')
+ assert table == (
+ '╔═════════════════╤═════════════════╗\n'
+ '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
+ '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m │ \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
+ '╚═════════════════╧═════════════════╝'
+ )
# Non-default padding
at = AlternatingTable([column_1, column_2], padding=2)
table = at.generate_table(row_data)
- assert table == ('╔═══════════════════╤═══════════════════╗\n'
- '║ Col 1 │ Col 2 ║\n'
- '╠═══════════════════╪═══════════════════╣\n'
- '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
- '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m │ \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
- '╚═══════════════════╧═══════════════════╝')
+ assert table == (
+ '╔═══════════════════╤═══════════════════╗\n'
+ '║ Col 1 │ Col 2 ║\n'
+ '╠═══════════════════╪═══════════════════╣\n'
+ '║ Col 1 Row 1 │ Col 2 Row 1 ║\n'
+ '\x1b[100m║ \x1b[49m\x1b[0m\x1b[100mCol 1 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m │ \x1b[49m\x1b[0m\x1b[100mCol 2 Row 2\x1b[49m\x1b[0m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[100m \x1b[49m\x1b[0m\x1b[100m ║\x1b[49m\n'
+ '╚═══════════════════╧═══════════════════╝'
+ )
# Invalid padding
with pytest.raises(ValueError) as excinfo: