1
0
Fork 0
terminaltables3/tests/test_width_and_alignment/test_visible_width.py

58 lines
1.9 KiB
Python
Raw Normal View History

"""Test function in module."""
import pytest
from colorama import Fore
from colorclass import Color
from termcolor import colored
from terminaltables3.width_and_alignment import visible_width
@pytest.mark.parametrize(
"string,expected",
[
# str
("hello, world", 12),
("世界你好", 8),
("蓝色", 4),
("שלום", 4),
("معرب", 4),
("hello 世界", 10),
# str+ansi
("\x1b[34mhello, world\x1b[39m", 12),
("\x1b[34m世界你好\x1b[39m", 8),
("\x1b[34m蓝色\x1b[39m", 4),
("\x1b[34mשלום\x1b[39m", 4),
("\x1b[34mمعرب\x1b[39m", 4),
("\x1b[34mhello 世界\x1b[39m", 10),
# colorclass
(Color("{blue}hello, world{/blue}"), 12),
(Color("{blue}世界你好{/blue}"), 8),
(Color("{blue}蓝色{/blue}"), 4),
(Color("{blue}שלום{/blue}"), 4),
(Color("{blue}معرب{/blue}"), 4),
(Color("{blue}hello 世界{/blue}"), 10),
# colorama
(Fore.BLUE + "hello, world" + Fore.RESET, 12),
(Fore.BLUE + "世界你好" + Fore.RESET, 8),
(Fore.BLUE + "蓝色" + Fore.RESET, 4),
(Fore.BLUE + "שלום" + Fore.RESET, 4),
(Fore.BLUE + "معرب" + Fore.RESET, 4),
(Fore.BLUE + "hello 世界" + Fore.RESET, 10),
# termcolor
(colored("hello, world", "blue"), 12),
(colored("世界你好", "blue"), 8),
(colored("蓝色", "blue"), 4),
(colored("שלום", "blue"), 4),
(colored("معرب", "blue"), 4),
(colored("hello 世界", "blue"), 10),
],
)
def test(string, expected):
"""Test function with different color libraries.
:param str string: Input string to measure.
:param int expected: Expected visible width of string (some characters are len() == 1 but take up 2 spaces).
"""
assert visible_width(string) == expected