1
0
Fork 0
terminaltables3/tests/test_base_table/test_table.py

197 lines
5.1 KiB
Python
Raw Normal View History

# coding: utf-8
"""Test property in BaseTable class."""
from colorama import Fore
from colorclass import Color
from termcolor import colored
from terminaltables.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 = (
u'+------------+-----+-------+------+\n'
u'| ansi | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n'
u'| colorclass | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n'
u'| colorama | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n'
u'| termcolor | \033[31mRed\033[0m | \033[32mGreen\033[0m | \033[34mBlue\033[0m |\n'
u'+------------+-----+-------+------+'
)
assert actual == expected