4
4
import numpy as np
5
5
6
6
7
+ EXTRAS = ["none" , "all" , True , False , 3 ]
8
+ FLAGS = ["lines" , "markers" , "text" ]
9
+
7
10
# Fixtures
8
11
# --------
9
- @pytest .fixture (params = [None , [ "none" , "all" ] ])
12
+ @pytest .fixture (params = [None , EXTRAS ])
10
13
def validator (request ):
11
14
# Validator with or without extras
12
- return FlaglistValidator (
13
- "prop" , "parent" , flags = ["lines" , "markers" , "text" ], extras = request .param
14
- )
15
+ return FlaglistValidator ("prop" , "parent" , flags = FLAGS , extras = request .param )
15
16
16
17
17
18
@pytest .fixture ()
18
19
def validator_extra ():
19
- return FlaglistValidator (
20
- "prop" , "parent" , flags = ["lines" , "markers" , "text" ], extras = ["none" , "all" ]
21
- )
20
+ return FlaglistValidator ("prop" , "parent" , flags = FLAGS , extras = EXTRAS )
22
21
23
22
24
23
@pytest .fixture ()
25
24
def validator_extra_aok ():
26
25
return FlaglistValidator (
27
- "prop" ,
28
- "parent" ,
29
- flags = ["lines" , "markers" , "text" ],
30
- extras = ["none" , "all" ],
31
- array_ok = True ,
26
+ "prop" , "parent" , flags = FLAGS , extras = EXTRAS , array_ok = True ,
32
27
)
33
28
34
29
35
30
@pytest .fixture (
36
31
params = [
37
32
"+" .join (p )
38
- for i in range (1 , 4 )
39
- for p in itertools .permutations ([ "lines" , "markers" , "text" ] , i )
33
+ for i in range (1 , len ( FLAGS ) + 1 )
34
+ for p in itertools .permutations (FLAGS , i )
40
35
]
41
36
)
42
37
def flaglist (request ):
43
38
return request .param
44
39
45
40
46
- @pytest .fixture (params = [ "none" , "all" ] )
41
+ @pytest .fixture (params = EXTRAS )
47
42
def extra (request ):
48
43
return request .param
49
44
@@ -69,7 +64,7 @@ def test_coercion(in_val, coerce_val, validator):
69
64
70
65
71
66
# ### Rejection by type ###
72
- @pytest .mark .parametrize ("val" , [21 , (), ["lines" ], set (), {}])
67
+ @pytest .mark .parametrize ("val" , [(), ["lines" ], set (), {}])
73
68
def test_rejection_type (val , validator ):
74
69
with pytest .raises (ValueError ) as validation_failure :
75
70
validator .validate_coerce (val )
@@ -79,7 +74,7 @@ def test_rejection_type(val, validator):
79
74
80
75
# ### Rejection by value ###
81
76
@pytest .mark .parametrize (
82
- "val" , ["" , "line" , "markers+line" , "lin es" , "lin es+markers" ]
77
+ "val" , ["" , "line" , "markers+line" , "lin es" , "lin es+markers" , 21 ]
83
78
)
84
79
def test_rejection_val (val , validator ):
85
80
with pytest .raises (ValueError ) as validation_failure :
@@ -144,7 +139,7 @@ def test_acceptance_aok_scalarlist_flaglist(flaglist, validator_extra_aok):
144
139
[
145
140
["all" , "markers" , "text+markers" ],
146
141
["lines" , "lines+markers" , "markers+lines+text" ],
147
- ["all" , "all" , "lines+text" , "none" ] ,
142
+ ["all" , "all" , "lines+text" ] + EXTRAS ,
148
143
],
149
144
)
150
145
def test_acceptance_aok_list_flaglist (val , validator_extra_aok ):
@@ -158,8 +153,8 @@ def test_acceptance_aok_list_flaglist(val, validator_extra_aok):
158
153
"in_val,expected" ,
159
154
[
160
155
(
161
- [" lines " , " lines + markers " , "lines ,markers" ],
162
- ["lines" , "lines+markers" , "lines+markers" ],
156
+ [" lines " , " lines + markers " , "lines ,markers" , " all " ],
157
+ ["lines" , "lines+markers" , "lines+markers" , "all" ],
163
158
),
164
159
(np .array (["text +lines" ]), np .array (["text+lines" ], dtype = "unicode" )),
165
160
],
0 commit comments