def test_decode_sgr_styles_strike(): """Strike and its reset are being detected.""" for code in ['\x1b[9m', '\x1b[29m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'strike' assert color['code'] == code
def test_decode_sgr_styles_underline(): """Underline and its reset are being detected.""" for code in ['\x1b[4m', '\x1b[24m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'underline' assert color['code'] == code
def test_decode_sgr_styles_bold(): """Bold and its reset are being detected.""" for code in ['\x1b[1m', '\x1b[2m', '\x1b[22m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'bold' assert color['code'] == code
def test_decode_sgr_styles_italic(): """Italic and its reset are being detected.""" for code in ['\x1b[3m', '\x1b[23m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'italic' assert color['code'] == code
def test_decode_sgr_styles_blink(): """Blink and its reset are being detected.""" for code in ['\x1b[5m', '\x1b[25m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'blink' assert color['code'] == code
def test_decode_sgr_fg(): """Foreground colors and reset are being detected.""" for code in ['\x1b[38;5;123m', '\x1b[38;2;1;1;1m', '\x1b[39m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'fg' assert color['code'] == code
def test_decode_sgr_split_compound(): """Split the a compound SGR into discrete SGR's.""" colors = chromaterm.decode_sgr('\x1b[1;33;40m') codes = ['\x1b[1m', '\x1b[33m', '\x1b[40m'] types = ['bold', 'fg', 'bg'] for color, code, name in zip(colors, codes, types): assert color['type'] == name assert repr(color['code']) == repr(code)
def test_decode_sgr_malformed(): """Malformed colors.""" for code in ['\x1b[38;5m', '\x1b[38;2;1;1m', '\x1b[38;5;123;38;2;1;1m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] is None assert color['code'] == code
def test_decode_sgr_complete_reset(): """Complete reset detection.""" for code in ['\x1b[00m', '\x1b[0m', '\x1b[m']: colors = chromaterm.decode_sgr(code) assert len(colors) == 1 for color in colors: assert color['type'] == 'complete_reset' assert color['code'] == code