2025-02-12 13:04:33 +01:00
|
|
|
|
"""Test function in module."""
|
|
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
from colorama import Fore
|
|
|
|
|
from colorclass import Color
|
|
|
|
|
from termcolor import colored
|
|
|
|
|
|
2025-02-12 15:00:49 +01:00
|
|
|
|
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),
|
|
|
|
|
],
|
|
|
|
|
)
|
2025-02-12 13:04:33 +01:00
|
|
|
|
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
|