3
3
from pprint import pprint
4
4
from compat .itertools import zip_longest
5
5
from vint .linting .linter import Linter
6
+ from vint .linting .config .config_default_source import ConfigDefaultSource
6
7
7
8
8
9
class PolicyAssertion (unittest .TestCase ):
@@ -22,11 +23,18 @@ def update_by_config(self, policy_enabling_map):
22
23
class StubConfigContainer (object ):
23
24
def __init__ (self , policy_names_to_enable ):
24
25
25
- policy_enabling_map = dict ((policy_name , {'enabled' : True })
26
- for policy_name in policy_names_to_enable )
26
+ default_config_dict = ConfigDefaultSource (None ).get_config_dict ()
27
+ policy_options = default_config_dict .get ('policies' , {})
28
+
29
+ for policy , options in policy_options .items ():
30
+ options ['enabled' ] = False
31
+
32
+ for policy in policy_names_to_enable :
33
+ options = policy_options .setdefault (policy , {})
34
+ options ['enabled' ] = True
27
35
28
36
self ._config_dict = {
29
- 'policies' : policy_enabling_map
37
+ 'policies' : policy_options ,
30
38
}
31
39
32
40
@@ -39,17 +47,20 @@ def get_config_dict(self):
39
47
return self ._config_dict
40
48
41
49
42
- def assertFoundNoViolations (self , path , Policy ):
43
- self .assertFoundViolationsEqual (path , Policy , [])
50
+ def assertFoundNoViolations (self , path , Policy , policy_options = None ):
51
+ self .assertFoundViolationsEqual (path , Policy , [], policy_options )
44
52
45
53
46
- def assertFoundViolationsEqual (self , path , Policy , expected_violations ):
54
+ def assertFoundViolationsEqual (self , path , Policy , expected_violations , policy_options = None ):
47
55
policy_to_test = Policy ()
48
56
policy_name = Policy .__name__
49
57
50
58
policy_set = PolicyAssertion .StubPolicySet (policy_to_test )
51
59
config = PolicyAssertion .StubConfigContainer (policy_name )
52
60
61
+ if policy_options is not None :
62
+ config .get_config_dict ()['policies' ][policy_name ].update (policy_options )
63
+
53
64
linter = Linter (policy_set , config .get_config_dict ())
54
65
violations = linter .lint_file (path )
55
66
0 commit comments