9
9
10
10
def create_options (** kwargs ):
11
11
"""Create and return an instance of argparse.Namespace."""
12
- kwargs .setdefault ('select' , [])
13
- kwargs .setdefault ('extended_default_select' , [])
14
- kwargs .setdefault ('extend_select' , [])
15
- kwargs .setdefault ('ignore' , [])
16
- kwargs .setdefault ('extend_ignore' , [])
17
- kwargs .setdefault ('disable_noqa' , False )
18
- kwargs .setdefault ('enable_extensions' , [])
12
+ kwargs .setdefault ("select" , [])
13
+ kwargs .setdefault ("extended_default_ignore" , [])
14
+ kwargs .setdefault ("extended_default_select" , [])
15
+ kwargs .setdefault ("extend_select" , [])
16
+ kwargs .setdefault ("ignore" , [])
17
+ kwargs .setdefault ("extend_ignore" , [])
18
+ kwargs .setdefault ("disable_noqa" , False )
19
+ kwargs .setdefault ("enable_extensions" , [])
19
20
return argparse .Namespace (** kwargs )
20
21
21
22
22
- @pytest .mark .parametrize ('ignore_list,extend_ignore,error_code' , [
23
- (['E111' , 'E121' ], [], 'E111' ),
24
- (['E111' , 'E121' ], [], 'E121' ),
25
- (['E111' ], ['E121' ], 'E121' ),
26
- (['E11' , 'E12' ], [], 'E121' ),
27
- (['E2' , 'E12' ], [], 'E121' ),
28
- (['E2' , 'E12' ], [], 'E211' ),
29
- (['E2' , 'E3' ], ['E12' ], 'E211' ),
30
- ])
23
+ @pytest .mark .parametrize (
24
+ "ignore_list,extend_ignore,error_code" ,
25
+ [
26
+ (["E111" , "E121" ], [], "E111" ),
27
+ (["E111" , "E121" ], [], "E121" ),
28
+ (["E111" ], ["E121" ], "E121" ),
29
+ (["E11" , "E12" ], [], "E121" ),
30
+ (["E2" , "E12" ], [], "E121" ),
31
+ (["E2" , "E12" ], [], "E211" ),
32
+ (["E2" , "E3" ], ["E12" ], "E211" ),
33
+ ],
34
+ )
31
35
def test_was_ignored_ignores_errors (ignore_list , extend_ignore , error_code ):
32
36
"""Verify we detect users explicitly ignoring an error."""
33
37
decider = style_guide .DecisionEngine (
34
- create_options (ignore = ignore_list , extend_ignore = extend_ignore ))
38
+ create_options (ignore = ignore_list , extend_ignore = extend_ignore )
39
+ )
35
40
36
41
assert decider .was_ignored (error_code ) is style_guide .Ignored .Explicitly
37
42
38
43
39
- @pytest .mark .parametrize ('ignore_list,extend_ignore,error_code' , [
40
- (['E111' , 'E121' ], [], 'E112' ),
41
- (['E111' , 'E121' ], [], 'E122' ),
42
- (['E11' , 'E12' ], ['E121' ], 'W121' ),
43
- (['E2' , 'E12' ], [], 'E112' ),
44
- (['E2' , 'E12' ], [], 'E111' ),
45
- (['E2' , 'E12' ], ['W11' , 'E3' ], 'E111' ),
46
- ])
47
- def test_was_ignored_implicitly_selects_errors (ignore_list , extend_ignore ,
48
- error_code ):
44
+ @pytest .mark .parametrize (
45
+ "ignore_list,extend_ignore,error_code" ,
46
+ [
47
+ (["E111" , "E121" ], [], "E112" ),
48
+ (["E111" , "E121" ], [], "E122" ),
49
+ (["E11" , "E12" ], ["E121" ], "W121" ),
50
+ (["E2" , "E12" ], [], "E112" ),
51
+ (["E2" , "E12" ], [], "E111" ),
52
+ (["E2" , "E12" ], ["W11" , "E3" ], "E111" ),
53
+ ],
54
+ )
55
+ def test_was_ignored_implicitly_selects_errors (
56
+ ignore_list , extend_ignore , error_code
57
+ ):
49
58
"""Verify we detect users does not explicitly ignore an error."""
50
59
decider = style_guide .DecisionEngine (
51
- create_options (ignore = ignore_list , extend_ignore = extend_ignore ))
60
+ create_options (ignore = ignore_list , extend_ignore = extend_ignore )
61
+ )
52
62
53
63
assert decider .was_ignored (error_code ) is style_guide .Selected .Implicitly
54
64
55
65
56
66
@pytest .mark .parametrize (
57
- 'select_list,extend_select,enable_extensions,error_code' , [
58
- (['E111' , 'E121' ], [], [], 'E111' ),
59
- (['E111' , 'E121' ], [], [], 'E121' ),
60
- (['E11' , 'E12' ], [], [], 'E121' ),
61
- (['E2' , 'E12' ], [], [], 'E121' ),
62
- (['E2' , 'E12' ], [], [], 'E211' ),
63
- (['E1' ], ['E2' ], [], 'E211' ),
64
- (['E1' ], [], ['E2' ], 'E211' ),
65
- ([], ['E2' ], [], 'E211' ),
66
- ([], [], ['E2' ], 'E211' ),
67
- (['E1' ], ['E2' ], [], 'E211' ),
68
- (['E111' ], ['E121' ], ['E2' ], 'E121' ),
69
- ]
67
+ "select_list,extend_select,enable_extensions,error_code" ,
68
+ [
69
+ (["E111" , "E121" ], [], [], "E111" ),
70
+ (["E111" , "E121" ], [], [], "E121" ),
71
+ (["E11" , "E12" ], [], [], "E121" ),
72
+ (["E2" , "E12" ], [], [], "E121" ),
73
+ (["E2" , "E12" ], [], [], "E211" ),
74
+ (["E1" ], ["E2" ], [], "E211" ),
75
+ (["E1" ], [], ["E2" ], "E211" ),
76
+ ([], ["E2" ], [], "E211" ),
77
+ ([], [], ["E2" ], "E211" ),
78
+ (["E1" ], ["E2" ], [], "E211" ),
79
+ (["E111" ], ["E121" ], ["E2" ], "E121" ),
80
+ ],
70
81
)
71
- def test_was_selected_selects_errors (select_list , extend_select ,
72
- enable_extensions , error_code ):
82
+ def test_was_selected_selects_errors (
83
+ select_list , extend_select , enable_extensions , error_code
84
+ ):
73
85
"""Verify we detect users explicitly selecting an error."""
74
86
decider = style_guide .DecisionEngine (
75
- options = create_options (select = select_list ,
76
- extend_select = extend_select ,
77
- enable_extensions = enable_extensions ),
87
+ options = create_options (
88
+ select = select_list ,
89
+ extend_select = extend_select ,
90
+ enable_extensions = enable_extensions ,
91
+ ),
78
92
)
79
93
80
94
assert decider .was_selected (error_code ) is style_guide .Selected .Explicitly
81
95
82
96
83
97
def test_was_selected_implicitly_selects_errors ():
84
98
"""Verify we detect users implicitly selecting an error."""
85
- error_code = ' E121'
99
+ error_code = " E121"
86
100
decider = style_guide .DecisionEngine (
87
101
create_options (
88
102
select = [],
89
- extended_default_select = ['E' ],
103
+ extended_default_select = ["E" ],
90
104
),
91
105
)
92
106
93
107
assert decider .was_selected (error_code ) is style_guide .Selected .Implicitly
94
108
95
109
96
- @pytest .mark .parametrize ('select_list,error_code' , [
97
- (['E111' , 'E121' ], 'E112' ),
98
- (['E111' , 'E121' ], 'E122' ),
99
- (['E11' , 'E12' ], 'E132' ),
100
- (['E2' , 'E12' ], 'E321' ),
101
- (['E2' , 'E12' ], 'E410' ),
102
- ])
110
+ @pytest .mark .parametrize (
111
+ "select_list,error_code" ,
112
+ [
113
+ (["E111" , "E121" ], "E112" ),
114
+ (["E111" , "E121" ], "E122" ),
115
+ (["E11" , "E12" ], "E132" ),
116
+ (["E2" , "E12" ], "E321" ),
117
+ (["E2" , "E12" ], "E410" ),
118
+ ],
119
+ )
103
120
def test_was_selected_excludes_errors (select_list , error_code ):
104
121
"""Verify we detect users implicitly excludes an error."""
105
122
decider = style_guide .DecisionEngine (create_options (select = select_list ))
@@ -108,100 +125,285 @@ def test_was_selected_excludes_errors(select_list, error_code):
108
125
109
126
110
127
@pytest .mark .parametrize (
111
- 'select_list,ignore_list,extend_ignore,error_code,expected' , [
112
- (['E111' , 'E121' ], [], [], 'E111' , style_guide .Decision .Selected ),
113
- (['E111' , 'E121' ], [], [], 'E112' , style_guide .Decision .Ignored ),
114
- (['E111' , 'E121' ], [], [], 'E121' , style_guide .Decision .Selected ),
115
- (['E111' , 'E121' ], [], [], 'E122' , style_guide .Decision .Ignored ),
116
- (['E11' , 'E12' ], [], [], 'E132' , style_guide .Decision .Ignored ),
117
- (['E2' , 'E12' ], [], [], 'E321' , style_guide .Decision .Ignored ),
118
- (['E2' , 'E12' ], [], [], 'E410' , style_guide .Decision .Ignored ),
119
- (['E11' , 'E121' ], ['E1' ], [], 'E112' , style_guide .Decision .Selected ),
120
- (['E11' , 'E121' ], [], ['E1' ], 'E112' , style_guide .Decision .Selected ),
121
- (['E111' , 'E121' ], ['E2' ], ['E3' ], 'E122' ,
122
- style_guide .Decision .Ignored ),
123
- (['E11' , 'E12' ], ['E13' ], [], 'E132' , style_guide .Decision .Ignored ),
124
- (['E1' , 'E3' ], ['E32' ], [], 'E321' , style_guide .Decision .Ignored ),
125
- ([], ['E2' , 'E12' ], [], 'E410' , style_guide .Decision .Ignored ),
126
- (['E4' ], ['E2' , 'E12' , 'E41' ], [], 'E410' ,
127
- style_guide .Decision .Ignored ),
128
- (['E41' ], ['E2' , 'E12' , 'E4' ], [], 'E410' ,
129
- style_guide .Decision .Selected ),
130
- (['E' ], ['F' ], [], 'E410' , style_guide .Decision .Selected ),
131
- (['F' ], [], [], 'E410' , style_guide .Decision .Ignored ),
132
- (['E' ], defaults .IGNORE , [], 'E126' , style_guide .Decision .Selected ),
133
- (['W' ], defaults .IGNORE , [], 'E126' , style_guide .Decision .Ignored ),
134
- (['E' ], defaults .IGNORE , [], 'W391' , style_guide .Decision .Ignored ),
135
- (['E' , 'W' ], ['E13' ], [], 'E131' , style_guide .Decision .Ignored ),
136
- (defaults .SELECT , ['E13' ], [], 'E131' , style_guide .Decision .Ignored ),
137
- (defaults .SELECT , defaults .IGNORE , ['W391' ], 'E126' ,
138
- style_guide .Decision .Ignored ),
139
- (defaults .SELECT , defaults .IGNORE , [], 'W391' ,
140
- style_guide .Decision .Selected ),
141
- ]
128
+ "select_list,ignore_list,extend_ignore,error_code,expected" ,
129
+ [
130
+ (["E111" , "E121" ], [], [], "E111" , style_guide .Decision .Selected ),
131
+ (["E111" , "E121" ], [], [], "E112" , style_guide .Decision .Ignored ),
132
+ (["E111" , "E121" ], [], [], "E121" , style_guide .Decision .Selected ),
133
+ (["E111" , "E121" ], [], [], "E122" , style_guide .Decision .Ignored ),
134
+ (["E11" , "E12" ], [], [], "E132" , style_guide .Decision .Ignored ),
135
+ (["E2" , "E12" ], [], [], "E321" , style_guide .Decision .Ignored ),
136
+ (["E2" , "E12" ], [], [], "E410" , style_guide .Decision .Ignored ),
137
+ (["E11" , "E121" ], ["E1" ], [], "E112" , style_guide .Decision .Selected ),
138
+ (["E11" , "E121" ], [], ["E1" ], "E112" , style_guide .Decision .Selected ),
139
+ (
140
+ ["E111" , "E121" ],
141
+ ["E2" ],
142
+ ["E3" ],
143
+ "E122" ,
144
+ style_guide .Decision .Ignored ,
145
+ ),
146
+ (["E11" , "E12" ], ["E13" ], [], "E132" , style_guide .Decision .Ignored ),
147
+ (["E1" , "E3" ], ["E32" ], [], "E321" , style_guide .Decision .Ignored ),
148
+ ([], ["E2" , "E12" ], [], "E410" , style_guide .Decision .Ignored ),
149
+ (
150
+ ["E4" ],
151
+ ["E2" , "E12" , "E41" ],
152
+ [],
153
+ "E410" ,
154
+ style_guide .Decision .Ignored ,
155
+ ),
156
+ (
157
+ ["E41" ],
158
+ ["E2" , "E12" , "E4" ],
159
+ [],
160
+ "E410" ,
161
+ style_guide .Decision .Selected ,
162
+ ),
163
+ (["E" ], ["F" ], [], "E410" , style_guide .Decision .Selected ),
164
+ (["F" ], [], [], "E410" , style_guide .Decision .Ignored ),
165
+ (["E" ], defaults .IGNORE , [], "E126" , style_guide .Decision .Selected ),
166
+ (["W" ], defaults .IGNORE , [], "E126" , style_guide .Decision .Ignored ),
167
+ (["E" ], defaults .IGNORE , [], "W391" , style_guide .Decision .Ignored ),
168
+ (["E" , "W" ], ["E13" ], [], "E131" , style_guide .Decision .Ignored ),
169
+ (defaults .SELECT , ["E13" ], [], "E131" , style_guide .Decision .Ignored ),
170
+ (
171
+ defaults .SELECT ,
172
+ defaults .IGNORE ,
173
+ ["W391" ],
174
+ "E126" ,
175
+ style_guide .Decision .Ignored ,
176
+ ),
177
+ (
178
+ defaults .SELECT ,
179
+ defaults .IGNORE ,
180
+ [],
181
+ "W391" ,
182
+ style_guide .Decision .Selected ,
183
+ ),
184
+ ],
142
185
)
143
- def test_decision_for (select_list , ignore_list , extend_ignore , error_code ,
144
- expected ):
186
+ def test_decision_for (
187
+ select_list , ignore_list , extend_ignore , error_code , expected
188
+ ):
145
189
"""Verify we decide when to report an error."""
146
190
decider = style_guide .DecisionEngine (
147
- create_options (select = select_list ,
148
- ignore = ignore_list ,
149
- extend_ignore = extend_ignore ))
191
+ create_options (
192
+ select = select_list ,
193
+ ignore = ignore_list ,
194
+ extend_ignore = extend_ignore ,
195
+ )
196
+ )
150
197
151
198
assert decider .decision_for (error_code ) is expected
152
199
153
200
154
201
@pytest .mark .parametrize (
155
- 'select,ignore,extended_default_select,'
156
- 'enabled_extensions,error_code,expected' , [
157
- (defaults .SELECT , [], ['I1' ], [], 'I100' ,
158
- style_guide .Decision .Selected ),
159
- (defaults .SELECT , [], ['I1' ], [], 'I201' ,
160
- style_guide .Decision .Ignored ),
161
- (defaults .SELECT , ['I2' ], ['I1' ], [], 'I101' ,
162
- style_guide .Decision .Selected ),
163
- (defaults .SELECT , ['I2' ], ['I1' ], [], 'I201' ,
164
- style_guide .Decision .Ignored ),
165
- (defaults .SELECT , ['I1' ], ['I10' ], [], 'I101' ,
166
- style_guide .Decision .Selected ),
167
- (defaults .SELECT , ['I10' ], ['I1' ], [], 'I101' ,
168
- style_guide .Decision .Ignored ),
169
- (defaults .SELECT , [], [], ['U4' ], 'U401' ,
170
- style_guide .Decision .Selected ),
171
- (defaults .SELECT , ['U401' ], [], ['U4' ], 'U401' ,
172
- style_guide .Decision .Ignored ),
173
- (defaults .SELECT , ['U401' ], [], ['U4' ], 'U402' ,
174
- style_guide .Decision .Selected ),
175
- (['E' , 'W' ], ['E13' ], [], [], 'E131' , style_guide .Decision .Ignored ),
176
- (['E' , 'W' ], ['E13' ], [], [], 'E126' , style_guide .Decision .Selected ),
177
- (['E2' ], ['E21' ], [], [], 'E221' , style_guide .Decision .Selected ),
178
- (['E2' ], ['E21' ], [], [], 'E212' , style_guide .Decision .Ignored ),
179
- (['F' , 'W' ], ['C90' ], ['I1' ], [], 'C901' ,
180
- style_guide .Decision .Ignored ),
181
- (['E' , 'W' ], ['C' ], [], [], 'E131' ,
182
- style_guide .Decision .Selected ),
183
- (defaults .SELECT , defaults .IGNORE , [], ['I' ], 'I101' ,
184
- style_guide .Decision .Selected ),
185
- (defaults .SELECT , defaults .IGNORE , ['G' ], ['I' ], 'G101' ,
186
- style_guide .Decision .Selected ),
187
- (defaults .SELECT , ['G1' ], ['G' ], ['I' ], 'G101' ,
188
- style_guide .Decision .Ignored ),
189
- (defaults .SELECT , ['E126' ], [], ['I' ], 'I101' ,
190
- style_guide .Decision .Selected ),
191
- (['E' , 'W' ], defaults .IGNORE , ['I' ], [], 'I101' ,
192
- style_guide .Decision .Ignored ),
202
+ "select,ignore,extended_default_ignore,extended_default_select,"
203
+ "enabled_extensions,error_code,expected" ,
204
+ [
205
+ (
206
+ defaults .SELECT ,
207
+ [],
208
+ [],
209
+ ["I1" ],
210
+ [],
211
+ "I100" ,
212
+ style_guide .Decision .Selected ,
213
+ ),
214
+ (
215
+ defaults .SELECT ,
216
+ [],
217
+ [],
218
+ ["I1" ],
219
+ [],
220
+ "I201" ,
221
+ style_guide .Decision .Ignored ,
222
+ ),
223
+ (
224
+ defaults .SELECT ,
225
+ ["I2" ],
226
+ [],
227
+ ["I1" ],
228
+ [],
229
+ "I101" ,
230
+ style_guide .Decision .Selected ,
231
+ ),
232
+ (
233
+ defaults .SELECT ,
234
+ ["I2" ],
235
+ [],
236
+ ["I1" ],
237
+ [],
238
+ "I201" ,
239
+ style_guide .Decision .Ignored ,
240
+ ),
241
+ (
242
+ defaults .SELECT ,
243
+ ["I1" ],
244
+ [],
245
+ ["I10" ],
246
+ [],
247
+ "I101" ,
248
+ style_guide .Decision .Selected ,
249
+ ),
250
+ (
251
+ defaults .SELECT ,
252
+ ["I10" ],
253
+ [],
254
+ ["I1" ],
255
+ [],
256
+ "I101" ,
257
+ style_guide .Decision .Ignored ,
258
+ ),
259
+ (
260
+ defaults .SELECT ,
261
+ [],
262
+ [],
263
+ [],
264
+ ["U4" ],
265
+ "U401" ,
266
+ style_guide .Decision .Selected ,
267
+ ),
268
+ (
269
+ defaults .SELECT ,
270
+ ["U401" ],
271
+ [],
272
+ [],
273
+ ["U4" ],
274
+ "U401" ,
275
+ style_guide .Decision .Ignored ,
276
+ ),
277
+ (
278
+ defaults .SELECT ,
279
+ ["U401" ],
280
+ [],
281
+ [],
282
+ ["U4" ],
283
+ "U402" ,
284
+ style_guide .Decision .Selected ,
285
+ ),
286
+ (
287
+ ["E" , "W" ],
288
+ ["E13" ],
289
+ [],
290
+ [],
291
+ [],
292
+ "E131" ,
293
+ style_guide .Decision .Ignored ,
294
+ ),
295
+ (
296
+ ["E" , "W" ],
297
+ ["E13" ],
298
+ [],
299
+ [],
300
+ [],
301
+ "E126" ,
302
+ style_guide .Decision .Selected ,
303
+ ),
304
+ (["E2" ], ["E21" ], [], [], [], "E221" , style_guide .Decision .Selected ),
305
+ (["E2" ], ["E21" ], [], [], [], "E212" , style_guide .Decision .Ignored ),
306
+ (
307
+ ["F" , "W" ],
308
+ ["C90" ],
309
+ [],
310
+ ["I1" ],
311
+ [],
312
+ "C901" ,
313
+ style_guide .Decision .Ignored ,
314
+ ),
315
+ (
316
+ ["E" , "W" ],
317
+ ["C" ],
318
+ [],
319
+ [],
320
+ [],
321
+ "E131" ,
322
+ style_guide .Decision .Selected ,
323
+ ),
324
+ (
325
+ defaults .SELECT ,
326
+ defaults .IGNORE ,
327
+ [],
328
+ [],
329
+ ["I" ],
330
+ "I101" ,
331
+ style_guide .Decision .Selected ,
332
+ ),
333
+ (
334
+ defaults .SELECT ,
335
+ defaults .IGNORE ,
336
+ [],
337
+ ["G" ],
338
+ ["I" ],
339
+ "G101" ,
340
+ style_guide .Decision .Selected ,
341
+ ),
342
+ (
343
+ defaults .SELECT ,
344
+ ["G1" ],
345
+ [],
346
+ ["G" ],
347
+ ["I" ],
348
+ "G101" ,
349
+ style_guide .Decision .Ignored ,
350
+ ),
351
+ (
352
+ defaults .SELECT ,
353
+ ["E126" ],
354
+ [],
355
+ [],
356
+ ["I" ],
357
+ "I101" ,
358
+ style_guide .Decision .Selected ,
359
+ ),
360
+ (
361
+ ["E" , "W" ],
362
+ defaults .IGNORE ,
363
+ [],
364
+ ["I" ],
365
+ [],
366
+ "I101" ,
367
+ style_guide .Decision .Ignored ,
368
+ ),
369
+ (
370
+ ["E" , "W" , "I101" ],
371
+ defaults .IGNORE + ("I101" ,),
372
+ ["I101" ],
373
+ [],
374
+ [],
375
+ "I101" ,
376
+ style_guide .Decision .Selected ,
377
+ ),
378
+ (
379
+ ["E" , "W" ],
380
+ defaults .IGNORE + ("I101" ,),
381
+ ["I101" ],
382
+ [],
383
+ [],
384
+ "I101" ,
385
+ style_guide .Decision .Ignored ,
386
+ ),
193
387
# TODO(sigmavirus24) Figure out how to exercise the final catch-all
194
388
# return statement
195
- ]
389
+ ],
196
390
)
197
391
def test_more_specific_decision_for_logic (
198
- select , ignore , extended_default_select ,
199
- enabled_extensions , error_code , expected ):
392
+ select ,
393
+ ignore ,
394
+ extended_default_ignore ,
395
+ extended_default_select ,
396
+ enabled_extensions ,
397
+ error_code ,
398
+ expected ,
399
+ ):
200
400
"""Verify the logic of DecisionEngine.more_specific_decision_for."""
201
401
decider = style_guide .DecisionEngine (
202
402
create_options (
203
- select = select , ignore = ignore ,
403
+ select = select ,
404
+ ignore = ignore ,
204
405
extended_default_select = extended_default_select ,
406
+ extended_default_ignore = extended_default_ignore ,
205
407
enable_extensions = enabled_extensions ,
206
408
),
207
409
)
0 commit comments