@@ -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