210 lines
5.3 KiB
Python
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
|