[tests] Allow to specify plugin options

pull/3/head
Andrew Krasichkov 2017-04-03 23:29:59 +03:00
parent 3885d13f8b
commit a0a01d6848
1 changed files with 13 additions and 2 deletions

View File

@ -60,16 +60,27 @@ def test_from_config():
'Plugin "{}" should have at least one simple test config with false positive'.format(plugin))
def yoda_provider(plugin):
def parse_plugin_options(config_path):
with open(config_path, 'r') as f:
config_line = f.readline()
if config_line.startswith('# Options: '):
return json.loads(config_line[10:])
return None
def yoda_provider(plugin, plugin_options=None):
config = Config(
allow_includes=False,
plugins=[plugin]
)
if plugin_options:
config.set_for(plugin, plugin_options)
return Gixy(config=config)
def check_configuration(plugin, config_path, test_config):
with yoda_provider(plugin) as yoda:
plugin_options = parse_plugin_options(config_path)
with yoda_provider(plugin, plugin_options) as yoda:
yoda.audit(config_path)
results = RawFormatter().format(yoda)