/
test_shellcolors.py
executable file
·123 lines (108 loc) · 3.64 KB
/
test_shellcolors.py
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/python3
import shellcolors as sc
import unittest
class TestShellcolors(unittest.TestCase):
def test_compile_clean(self):
self.assertEqual(
sc.compile("<red> foo </red>"),
"\033[31m foo \033[39m"
)
self.assertEqual(
sc.compile("<red><blue> foo </blue></red>"),
"\033[31m\033[34m foo \033[31m\033[39m"
)
def test_compile_open(self):
self.assertEqual(
sc.compile("<red><blue> foo "),
"\033[31m\033[34m foo \033[31;39m"
)
self.assertEqual(
sc.compile("<red><bold><blue> foo </bold>"),
"\033[31m\033[1m\033[34m foo \033[21m\033[31;39m"
)
self.assertEqual(
sc.compile("<red><u><blue><bg_green><b> foo </underline>"),
"\033[31m\033[4m\033[34m\033[42m\033[1m foo \033[24m\033[21;31;39;49m"
)
def test_compile_colors_swaped(self):
self.assertEqual(
sc.compile("<red> a <blue> b </red> c </blue>"),
"\033[31m a \033[34m b \033[34m c \033[39m"
)
def test_compile_styles_swaped(self):
self.assertEqual(
sc.compile("<u> a <b> b </u> c </b>"),
"\033[4m a \033[1m b \033[24m c \033[21m"
)
def test_reset(self):
self.assertEqual(
sc.compile("<red><bold><blue> foo <reset>"),
"\033[31m\033[1m\033[34m foo \033[0m"
)
self.assertEqual(
sc.compile("<red><bold><blue> foo </reset>"),
"\033[31m\033[1m\033[34m foo \033[0m"
)
def test_compile_mixed_aliases(self):
self.assertEqual(
sc.compile("<bold> foo </bold>"),
sc.compile("<b> foo </bold>")
)
self.assertEqual(
sc.compile("<bold> foo </bold>"),
sc.compile("<bold> foo </b>")
)
self.assertEqual(
sc.compile("<bold> foo </bold>"),
sc.compile("<strong> foo </b>")
)
self.assertEqual(
sc.compile("<bold><italic> foo </italic></bold>"),
sc.compile("<b><i> foo </italic></bold>")
)
self.assertEqual(
sc.compile("<bold><italic> foo </italic></bold>"),
sc.compile("<bold><italic> foo </i></b>")
)
self.assertEqual(
sc.compile("<bold><italic> foo </italic></bold>"),
sc.compile("<b><em> foo </i></strong>")
)
def test_style(self):
self.assertEqual(
sc.style("red", "foo"),
sc.compile("<red>foo</red>")
)
self.assertEqual(
sc.style("red", "bold", "foo"),
sc.compile("<red><bold>foo</bold></red>")
)
self.assertEqual(
sc.style("b", "foo"),
sc.compile("<bold>foo</bold>")
)
def test_sprint(self):
sc.sprint("red", "bold", "red + bold")
def test_cprint(self):
sc.cprint("<red><bold>red + bold</bold></red>")
def test_style_functions(self):
self.assertEqual(
sc.compile("<red> foo </red>"),
sc.red(" foo ")
)
self.assertEqual(
sc.compile("<bg_red> foo </bg_red>"),
sc.bg_red(" foo ")
)
self.assertEqual(
sc.compile("<bold> foo </bold>"),
sc.bold(" foo ")
)
def test_function_mixing(self):
self.assertEqual(
sc.compile("<red>" + sc.bold(sc.style("underline", " foo ")) + "</red>"),
sc.compile("<red><b><u> foo </u></b></red>")
)
# run
if __name__ == '__main__':
unittest.main()