Minor fixups

This commit is contained in:
Anthony Sottile 2015-11-23 12:19:02 -08:00
parent 7c8272da77
commit de2ead13a1
4 changed files with 12 additions and 7 deletions

View file

@ -41,8 +41,8 @@ CONFIG_JSON_SCHEMA = {
},
'additional_dependencies': {
'type': 'array',
'items': {'type': 'string'}
}
'items': {'type': 'string'},
},
},
'required': ['id'],
}

View file

@ -38,6 +38,10 @@ MANIFEST_JSON_SCHEMA = {
'type': 'string',
},
},
'additional_dependencies': {
'type': 'array',
'items': {'type': 'string'},
},
},
'required': ['id', 'name', 'entry', 'language', 'files'],
},

View file

@ -55,7 +55,8 @@ class Repository(object):
dep_dict = defaultdict(lambda: defaultdict(set))
for _, hook in self.hooks:
dep_dict[hook['language']][hook['language_version']].update(
hook.get('additional_dependencies', []))
hook.get('additional_dependencies', []),
)
return dep_dict
@cached_property
@ -118,7 +119,8 @@ class Repository(object):
language.install_environment(
self.cmd_runner, language_version,
self.additional_dependencies[language_name][language_version])
self.additional_dependencies[language_name][language_version],
)
# Touch the .installed file (atomic) to indicate we've installed
open(self.cmd_runner.path(directory, '.installed'), 'w').close()

View file

@ -294,7 +294,6 @@ def mock_repo_config():
'hooks': [{
'id': 'pyflakes',
'files': '\\.py$',
'additional_dependencies': ['pep8']
}],
}
config_wrapped = apply_defaults([config], CONFIG_JSON_SCHEMA)
@ -345,12 +344,12 @@ def test_additional_python_dependencies_installed(tempdir_factory, store):
def test_additional_ruby_dependencies_installed(tempdir_factory, store):
path = make_repo(tempdir_factory, 'ruby_hooks_repo')
config = make_config_from_repo(path)
config['hooks'][0]['additional_dependencies'] = ['mime-types']
config['hooks'][0]['additional_dependencies'] = ['thread_safe']
repo = Repository.create(config, store)
repo.run_hook(repo.hooks[0][1], [])
with ruby.in_env(repo.cmd_runner, 'default') as env:
output = env.run('gem list --local')[1]
assert 'mime-types' in output
assert 'thread_safe' in output
@pytest.mark.integration