1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
"""
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
"""
import itertools
import pytest
from tcolorpy import tcolor
from pathvalidate import (
ascii_symbols,
replace_ansi_escape,
replace_unprintable_char,
unprintable_ascii_chars,
)
from ._common import alphanum_chars
class Test_replace_unprintable_char:
TARGET_CHARS = unprintable_ascii_chars
NOT_TARGET_CHARS = alphanum_chars + ascii_symbols
REPLACE_TEXT_LIST = ["", "_"]
@pytest.mark.parametrize(
["value", "replace_text", "expected"],
[
["A" + c + "B", rep, "A" + rep + "B"]
for c, rep in itertools.product(TARGET_CHARS, REPLACE_TEXT_LIST)
]
+ [
["A" + c + "B", rep, "A" + c + "B"]
for c, rep in itertools.product(NOT_TARGET_CHARS, REPLACE_TEXT_LIST)
]
+ [
["", "", ""],
],
)
def test_normal(self, value, replace_text, expected):
assert replace_unprintable_char(value, replace_text) == expected
@pytest.mark.parametrize(
["value", "expected"],
[
[None, TypeError],
[1, TypeError],
[True, TypeError],
],
)
def test_abnormal(self, value, expected):
with pytest.raises(expected):
replace_unprintable_char(value)
class Test_replace_ansi_escape:
def test_normal(self):
value = "test"
ansi_value = tcolor(value, color="ffffff", bg_color="111111", styles=["bold"])
assert replace_ansi_escape(ansi_value) == value
|