1
0
Fork 0
terminaltables3/tests/test_base_table/test_table.py
Daniel Baumann 07735c967b
Merging upstream version 4.0.0 (Closes: #1095814).
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-12 15:00:49 +01:00

210 lines
5.3 KiB
Python

"""Test property in BaseTable class."""
from colorama import Fore
from colorclass import Color
from termcolor import colored
from terminaltables3.base_table import BaseTable
def test_ascii():
"""Test with ASCII characters."""
table_data = [
["Name", "Color", "Type"],
["Avocado", "green", "nut"],
["Tomato", "red", "fruit"],
["Lettuce", "green", "vegetable"],
]
table = BaseTable(table_data)
actual = table.table
expected = (
"+---------+-------+-----------+\n"
"| Name | Color | Type |\n"
"+---------+-------+-----------+\n"
"| Avocado | green | nut |\n"
"| Tomato | red | fruit |\n"
"| Lettuce | green | vegetable |\n"
"+---------+-------+-----------+"
)
assert actual == expected
def test_int():
"""Test with integers instead of strings."""
table_data = [
[100, 10, 1],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
]
table = BaseTable(table_data, 1234567890)
actual = table.table
expected = (
"+1234567890+---+\n"
"| 100 | 10 | 1 |\n"
"+-----+----+---+\n"
"| 0 | 3 | 6 |\n"
"| 1 | 4 | 7 |\n"
"| 2 | 5 | 8 |\n"
"+-----+----+---+"
)
assert actual == expected
def test_float():
"""Test with floats instead of strings."""
table_data = [
[1.0, 22.0, 333.0],
[0.1, 3.1, 6.1],
[1.1, 4.1, 7.1],
[2.1, 5.1, 8.1],
]
table = BaseTable(table_data, 0.12345678)
actual = table.table
expected = (
"+0.12345678--+-------+\n"
"| 1.0 | 22.0 | 333.0 |\n"
"+-----+------+-------+\n"
"| 0.1 | 3.1 | 6.1 |\n"
"| 1.1 | 4.1 | 7.1 |\n"
"| 2.1 | 5.1 | 8.1 |\n"
"+-----+------+-------+"
)
assert actual == expected
def test_bool_none():
"""Test with NoneType/boolean instead of strings."""
table_data = [
[True, False, None],
[True, False, None],
[False, None, True],
[None, True, False],
]
table = BaseTable(table_data, True)
actual = table.table
expected = (
"+True---+-------+-------+\n"
"| True | False | None |\n"
"+-------+-------+-------+\n"
"| True | False | None |\n"
"| False | None | True |\n"
"| None | True | False |\n"
"+-------+-------+-------+"
)
assert actual == expected
def test_cjk():
"""Test with CJK characters."""
table_data = [
["CJK"],
["蓝色"],
["世界你好"],
]
table = BaseTable(table_data)
actual = table.table
expected = (
"+----------+\n"
"| CJK |\n"
"+----------+\n"
"| 蓝色 |\n"
"| 世界你好 |\n"
"+----------+"
)
assert actual == expected
def test_rtl():
"""Test with RTL characters."""
table_data = [
["RTL"],
["שלום"],
["معرب"],
]
table = BaseTable(table_data)
actual = table.table
expected = (
"+------+\n" "| RTL |\n" "+------+\n" "| שלום |\n" "| معرب |\n" "+------+"
)
assert actual == expected
def test_rtl_large():
"""Test large table of RTL characters."""
table_data = [
["اكتب", "اللون", "اسم"],
["البندق", "أخضر", "أفوكادو"],
["ثمرة", "أحمر", "بندورة"],
["الخضروات", "أخضر", "الخس"],
]
table = BaseTable(table_data, "جوجل المترجم")
actual = table.table
expected = (
"+جوجل المترجم------+---------+\n"
"| اكتب | اللون | اسم |\n"
"+----------+-------+---------+\n"
"| البندق | أخضر | أفوكادو |\n"
"| ثمرة | أحمر | بندورة |\n"
"| الخضروات | أخضر | الخس |\n"
"+----------+-------+---------+"
)
assert actual == expected
def test_color():
"""Test with color characters."""
table_data = [
[
"ansi",
"\033[31mRed\033[39m",
"\033[32mGreen\033[39m",
"\033[34mBlue\033[39m",
],
[
"colorclass",
Color("{red}Red{/red}"),
Color("{green}Green{/green}"),
Color("{blue}Blue{/blue}"),
],
[
"colorama",
Fore.RED + "Red" + Fore.RESET,
Fore.GREEN + "Green" + Fore.RESET,
Fore.BLUE + "Blue" + Fore.RESET,
],
[
"termcolor",
colored("Red", "red"),
colored("Green", "green"),
colored("Blue", "blue"),
],
]
table = BaseTable(table_data)
table.inner_heading_row_border = False
actual = table.table
expected = (
"+------------+-----+-------+------+\n"
"| ansi | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n"
"| colorclass | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n"
"| colorama | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n"
"| termcolor | \033[31mRed\033[0m | \033[32mGreen\033[0m | \033[34mBlue\033[0m |\n"
"+------------+-----+-------+------+"
)
assert actual == expected