def parse(text): return AnsiMarkup(strip=False).feed(text, strict=True)
def test_parse_with_custom_tags(): markups = {"info": F.GREEN + S.BRIGHT} am = AnsiMarkup(custom_markups=markups, strip=False) assert am.feed("<info>1</info>", strict=True) == F.GREEN + S.BRIGHT + "1" + S.RESET_ALL
def parse(text, colorize=True): if colorize: return AnsiMarkup(strip=False).feed(text, strict=True) else: return AnsiMarkup(strip=True).feed(text, strict=True)
def test_foreground_colors(text, expected): assert AnsiMarkup(strip=False).feed(text, strict=True) == expected
def test_nested(text, expected): assert AnsiMarkup(strip=False).feed(text, strict=True) == expected
def test_invalid_rgb(text, strip): with pytest.raises(ValueError): AnsiMarkup(strip=strip).feed(text, strict=True)
def test_tricky_strip(text, expected): assert AnsiMarkup(strip=True).feed(text, strict=True) == expected
def test_strip_with_custom_markups(): markups = {"red": "", "b,g,r": "", "fg 1,2,3": ""} am = AnsiMarkup(custom_markups=markups, strip=True) assert am.feed("<red>1</red><b,g,r>2</b,g,r><fg 1,2,3>3</fg 1,2,3>", strict=True) == "123"
def test_tricky_parse(text, expected): AnsiMarkup(strip=False).feed(text, strict=True) == expected
def test_permissive_parsing(text, expected): assert AnsiMarkup(strip=False).feed(text, strict=False) == expected
def test_strict_parsing(text): with pytest.raises(ValueError): AnsiMarkup(strip=False).feed(text, strict=True)
def test_unclosed_error(text, strip): with pytest.raises(ValueError): AnsiMarkup(strip=strip).feed(text, strict=True)
def test_escaping(text, expected): AnsiMarkup(strip=False).feed(text, strict=True) == expected
def test_autoclose(text, expected): AnsiMarkup(strip=False).feed(text, strict=True) == expected