additional_dependencies support for golang hooks

This commit is contained in:
Anthony Sottile
2017-01-25 13:44:35 -08:00
parent cc1eac46e4
commit 84ba1fd0c2
2 changed files with 22 additions and 1 deletions

View File

@@ -49,7 +49,6 @@ def install_environment(
additional_dependencies=(),
):
helpers.assert_version_default('golang', version)
helpers.assert_no_additional_deps('golang', additional_dependencies)
directory = repo_cmd_runner.path(
helpers.environment_dir(ENVIRONMENT_DIR, 'default'),
)
@@ -65,6 +64,8 @@ def install_environment(
env = dict(os.environ, GOPATH=directory)
cmd_output('go', 'get', './...', cwd=repo_src_dir, env=env)
for dependency in additional_dependencies:
cmd_output('go', 'get', dependency, cwd=repo_src_dir, env=env)
def run_hook(repo_cmd_runner, hook, file_args):

View File

@@ -16,6 +16,7 @@ from pre_commit import parse_shebang
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
from pre_commit.clientlib.validate_config import validate_config_extra
from pre_commit.jsonschema_extensions import apply_defaults
from pre_commit.languages import golang
from pre_commit.languages import helpers
from pre_commit.languages import node
from pre_commit.languages import pcre
@@ -542,6 +543,25 @@ def test_additional_node_dependencies_installed(
assert 'lodash' in output
@pytest.mark.integration
def test_additional_golang_dependencies_installed(
tempdir_factory, store,
):
path = make_repo(tempdir_factory, 'golang_hooks_repo')
config = make_config_from_repo(path)
# A small go package
config['hooks'][0]['additional_dependencies'] = ['github.com/firba1/tpol']
repo = Repository.create(config, store)
repo.require_installed()
with golang.in_env(repo.cmd_runner):
gopath = repo.cmd_runner.path(helpers.environment_dir(
golang.ENVIRONMENT_DIR, 'default',
))
env = dict(os.environ, GOPATH=gopath)
output = cmd_output('go', 'list', '...', env=env)[1]
assert 'github.com/firba1/tpol' in output
def test_reinstall(tempdir_factory, store, log_info_mock):
path = make_repo(tempdir_factory, 'python_hooks_repo')
config = make_config_from_repo(path)