@@ -28,26 +28,58 @@ def validator_aok_colorscale():
2828 )
2929
3030
31+ VALID_COLORS = [
32+ "red" ,
33+ "BLUE" ,
34+ "#8574b2" ,
35+ "#8574B2" ,
36+ "#8574b2cc" ,
37+ "#8574B2CC" ,
38+ "#87b" ,
39+ "#87B" ,
40+ "#87bc" ,
41+ "#87BC" ,
42+ "rgb(248, 12, 0)" ,
43+ "rgb(248 12 0)" ,
44+ "rgba(248, 12, 0, 0.5)" ,
45+ "rgba(248 12 0 / 0.5)" ,
46+ "var(--accent)" ,
47+ "hsl(0, 100%, 50%)" ,
48+ "hsl(0 100% 50%)" ,
49+ "hsl(0deg 100% 50%)" ,
50+ "hsla(0, 100%, 50%, 100%)" ,
51+ "hsla(0 100% 50% 100%)" ,
52+ "hsla(0deg 100% 50% 100%)" ,
53+ "hwb(0, 100%, 50%)" ,
54+ "hwb(0 100% 50%)" ,
55+ "hwb(0, 100%, 50%, 0.5)" ,
56+ "hwb(0 100% 50% 0.5)" ,
57+ ]
58+
59+ INVALID_COLORS_WRONG_TYPE = [
60+ set (),
61+ {},
62+ ["red" ],
63+ [12 ],
64+ ]
65+
66+ INVALID_COLORS_WRONG_FORMAT = [
67+ "redd" ,
68+ "rgbbb(255, 0, 0)" ,
69+ "hsl(0, 1%0000%, 50%)" ,
70+ "hsv(0, 100%, 100%)" ,
71+ "hsva(0, 100%, 100%, 50%)" ,
72+ ]
73+
74+
3175# Array not ok, numbers not ok
32- @pytest .mark .parametrize (
33- "val" ,
34- [
35- "red" ,
36- "BLUE" ,
37- "rgb(255, 0, 0)" ,
38- "var(--accent)" ,
39- "hsl(0, 100%, 50%)" ,
40- "hsla(0, 100%, 50%, 100%)" ,
41- "hsv(0, 100%, 100%)" ,
42- "hsva(0, 100%, 100%, 50%)" ,
43- ],
44- )
76+ @pytest .mark .parametrize ("val" , VALID_COLORS )
4577def test_acceptance (val , validator ):
4678 assert validator .validate_coerce (val ) == val
4779
4880
4981# Rejection by type
50- @pytest .mark .parametrize ("val" , [ set (), 23 , 0.5 , {}, [ "red" ], [ 12 ] ])
82+ @pytest .mark .parametrize ("val" , INVALID_COLORS_WRONG_TYPE + [ 23 , 0.5 ])
5183def test_rejection_1 (val , validator ):
5284 with pytest .raises (ValueError ) as validation_failure :
5385 validator .validate_coerce (val )
@@ -56,7 +88,7 @@ def test_rejection_1(val, validator):
5688
5789
5890# Rejection by value
59- @pytest .mark .parametrize ("val" , [ "redd" , "rgbbb(255, 0, 0)" , "hsl(0, 1%0000%, 50%)" ] )
91+ @pytest .mark .parametrize ("val" , INVALID_COLORS_WRONG_FORMAT )
6092def test_rejection_2 (val , validator ):
6193 with pytest .raises (ValueError ) as validation_failure :
6294 validator .validate_coerce (val )
@@ -68,27 +100,13 @@ def test_rejection_2(val, validator):
68100
69101
70102# Acceptance
71- @pytest .mark .parametrize (
72- "val" ,
73- [
74- "red" ,
75- "BLUE" ,
76- 23 ,
77- 15 ,
78- "rgb(255, 0, 0)" ,
79- "var(--accent)" ,
80- "hsl(0, 100%, 50%)" ,
81- "hsla(0, 100%, 50%, 100%)" ,
82- "hsv(0, 100%, 100%)" ,
83- "hsva(0, 100%, 100%, 50%)" ,
84- ],
85- )
103+ @pytest .mark .parametrize ("val" , VALID_COLORS + [23 , 15 ])
86104def test_acceptance_colorscale (val , validator_colorscale ):
87105 assert validator_colorscale .validate_coerce (val ) == val
88106
89107
90108# Rejection by type
91- @pytest .mark .parametrize ("val" , [ set (), {}, [ "red" ], [ 12 ]] )
109+ @pytest .mark .parametrize ("val" , INVALID_COLORS_WRONG_TYPE )
92110def test_rejection_colorscale_1 (val , validator_colorscale ):
93111 with pytest .raises (ValueError ) as validation_failure :
94112 validator_colorscale .validate_coerce (val )
@@ -97,7 +115,7 @@ def test_rejection_colorscale_1(val, validator_colorscale):
97115
98116
99117# Rejection by value
100- @pytest .mark .parametrize ("val" , [ "redd" , "rgbbb(255, 0, 0)" , "hsl(0, 1%0000%, 50%)" ] )
118+ @pytest .mark .parametrize ("val" , INVALID_COLORS_WRONG_FORMAT )
101119def test_rejection_colorscale_2 (val , validator_colorscale ):
102120 with pytest .raises (ValueError ) as validation_failure :
103121 validator_colorscale .validate_coerce (val )
@@ -115,11 +133,11 @@ def test_rejection_colorscale_2(val, validator_colorscale):
115133 "blue" ,
116134 ["red" , "rgb(255, 0, 0)" ],
117135 np .array (["red" , "rgb(255, 0, 0)" ]),
118- ["hsl(0, 100%, 50%)" , "hsla(0, 100%, 50%, 100%)" , "hsv (0, 100%, 100%)" ],
136+ ["hsl(0, 100%, 50%)" , "hsla(0, 100%, 50%, 100%)" , "hsl (0, 100%, 100%)" ],
119137 np .array (
120- ["hsl(0, 100%, 50%)" , "hsla(0, 100%, 50%, 100%)" , "hsv (0, 100%, 100%)" ]
138+ ["hsl(0, 100%, 50%)" , "hsla(0, 100%, 50%, 100%)" , "hsl (0, 100%, 100%)" ]
121139 ),
122- ["hsva (0, 100%, 100%, 50%)" ],
140+ ["hsla (0, 100%, 100%, 50%)" ],
123141 ],
124142)
125143def test_acceptance_aok (val , validator_aok ):
@@ -165,8 +183,8 @@ def test_acceptance_aok_2D(val, validator_aok):
165183 [23 ],
166184 [0 , 1 , 2 ],
167185 ["redd" , "rgb(255, 0, 0)" ],
168- ["hsl(0, 100%, 50_00%)" , "hsla(0, 100%, 50%, 100%)" , "hsv (0, 100%, 100%)" ],
169- ["hsva (0, 1%00%, 100%, 50%)" ],
186+ ["hsl(0, 100%, 50_00%)" , "hsla(0, 100%, 50%, 100%)" , "hsl (0, 100%, 100%)" ],
187+ ["hsla (0, 1%00%, 100%, 50%)" ],
170188 ],
171189)
172190def test_rejection_aok (val , validator_aok ):
@@ -182,11 +200,11 @@ def test_rejection_aok(val, validator_aok):
182200 [["redd" , "rgb(255, 0, 0)" ]],
183201 [
184202 ["hsl(0, 100%, 50_00%)" , "hsla(0, 100%, 50%, 100%)" ],
185- ["hsv (0, 100%, 100%)" , "purple" ],
203+ ["hsl (0, 100%, 100%)" , "purple" ],
186204 ],
187205 [
188206 np .array (["hsl(0, 100%, 50_00%)" , "hsla(0, 100%, 50%, 100%)" ]),
189- np .array (["hsv (0, 100%, 100%)" , "purple" ]),
207+ np .array (["hsl (0, 100%, 100%)" , "purple" ]),
190208 ],
191209 [["blue" ], [2 ]],
192210 ],
@@ -209,8 +227,8 @@ def test_rejection_aok_2D(val, validator_aok):
209227 23 ,
210228 [0 , 1 , 2 ],
211229 ["red" , 0.5 , "rgb(255, 0, 0)" ],
212- ["hsl(0, 100%, 50%)" , "hsla(0, 100%, 50%, 100%)" , "hsv (0, 100%, 100%)" ],
213- ["hsva (0, 100%, 100%, 50%)" ],
230+ ["hsl(0, 100%, 50%)" , "hsla(0, 100%, 50%, 100%)" , "hsl (0, 100%, 100%)" ],
231+ ["hsla (0, 100%, 100%, 50%)" ],
214232 ],
215233)
216234def test_acceptance_aok_colorscale (val , validator_aok_colorscale ):
@@ -226,8 +244,8 @@ def test_acceptance_aok_colorscale(val, validator_aok_colorscale):
226244 "val" ,
227245 [
228246 ["redd" , 0.5 , "rgb(255, 0, 0)" ],
229- ["hsl(0, 100%, 50_00%)" , "hsla(0, 100%, 50%, 100%)" , "hsv (0, 100%, 100%)" ],
230- ["hsva (0, 1%00%, 100%, 50%)" ],
247+ ["hsl(0, 100%, 50_00%)" , "hsla(0, 100%, 50%, 100%)" , "hsl (0, 100%, 100%)" ],
248+ ["hsla (0, 1%00%, 100%, 50%)" ],
231249 ],
232250)
233251def test_rejection_aok_colorscale (val , validator_aok_colorscale ):
0 commit comments