Skip to content

Commit d154392

Browse files
committed
Added unit tests for base_width()
1 parent 072ec86 commit d154392

File tree

1 file changed

+54
-3
lines changed

1 file changed

+54
-3
lines changed

tests/test_table_creator.py

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ def test_tabs():
240240
assert row == ' Col 1 Col 2 '
241241

242242

243-
def test_simple_table():
243+
def test_simple_table_creation():
244244
column_1 = Column("Col 1", width=16)
245245
column_2 = Column("Col 2", width=16)
246246

@@ -310,7 +310,31 @@ def test_simple_table():
310310
assert "Row spacing cannot be less than 0" in str(excinfo.value)
311311

312312

313-
def test_bordered_table():
313+
def test_simple_table_base_width():
314+
# Default divider char
315+
assert SimpleTable.base_width(1) == 0
316+
assert SimpleTable.base_width(2) == 2
317+
assert SimpleTable.base_width(3) == 4
318+
319+
# Standard divider char
320+
divider_char = '*'
321+
assert SimpleTable.base_width(1, divider_char=divider_char) == 0
322+
assert SimpleTable.base_width(2, divider_char=divider_char) == 2
323+
assert SimpleTable.base_width(3, divider_char=divider_char) == 4
324+
325+
# Wide divider char
326+
divider_char = '深'
327+
assert SimpleTable.base_width(1, divider_char=divider_char) == 0
328+
assert SimpleTable.base_width(2, divider_char=divider_char) == 4
329+
assert SimpleTable.base_width(3, divider_char=divider_char) == 8
330+
331+
# Invalid num_cols value
332+
with pytest.raises(ValueError) as excinfo:
333+
SimpleTable.base_width(0)
334+
assert "Column count cannot be less than 1" in str(excinfo.value)
335+
336+
337+
def test_bordered_table_creation():
314338
column_1 = Column("Col 1", width=15)
315339
column_2 = Column("Col 2", width=15)
316340

@@ -366,7 +390,34 @@ def test_bordered_table():
366390
assert "Padding cannot be less than 0" in str(excinfo.value)
367391

368392

369-
def test_alternating_table():
393+
def test_bordered_table_base_width():
394+
# Default behavior (column_borders=True, padding=1)
395+
assert BorderedTable.base_width(1) == 4
396+
assert BorderedTable.base_width(2) == 7
397+
assert BorderedTable.base_width(3) == 10
398+
399+
# No column borders
400+
assert BorderedTable.base_width(1, column_borders=False) == 4
401+
assert BorderedTable.base_width(2, column_borders=False) == 6
402+
assert BorderedTable.base_width(3, column_borders=False) == 8
403+
404+
# No padding
405+
assert BorderedTable.base_width(1, padding=0) == 2
406+
assert BorderedTable.base_width(2, padding=0) == 3
407+
assert BorderedTable.base_width(3, padding=0) == 4
408+
409+
# Extra padding
410+
assert BorderedTable.base_width(1, padding=3) == 8
411+
assert BorderedTable.base_width(2, padding=3) == 15
412+
assert BorderedTable.base_width(3, padding=3) == 22
413+
414+
# Invalid num_cols value
415+
with pytest.raises(ValueError) as excinfo:
416+
BorderedTable.base_width(0)
417+
assert "Column count cannot be less than 1" in str(excinfo.value)
418+
419+
420+
def test_alternating_table_creation():
370421
column_1 = Column("Col 1", width=15)
371422
column_2 = Column("Col 2", width=15)
372423

0 commit comments

Comments
 (0)