Pass language_version to the install method for each language.

This commit is contained in:
Anthony Sottile
2014-06-02 06:57:07 -07:00
parent 4f2f1731ea
commit a7ab9b2a28
7 changed files with 12 additions and 9 deletions

View File

@@ -24,7 +24,7 @@ def in_env(repo_cmd_runner):
yield NodeEnv(repo_cmd_runner)
def install_environment(repo_cmd_runner):
def install_environment(repo_cmd_runner, version='default'):
assert repo_cmd_runner.exists('package.json')
with clean_path_on_failure(repo_cmd_runner.path(python.ENVIRONMENT_DIR)):

View File

@@ -18,7 +18,7 @@ def in_env(repo_cmd_runner):
yield PythonEnv(repo_cmd_runner)
def install_environment(repo_cmd_runner):
def install_environment(repo_cmd_runner, version='default'):
assert repo_cmd_runner.exists('setup.py')
# Install a virtualenv

View File

@@ -56,7 +56,7 @@ def _install_rbenv(repo_cmd_runner):
)
def install_environment(repo_cmd_runner):
def install_environment(repo_cmd_runner, version='default'):
with clean_path_on_failure(repo_cmd_runner.path('rbenv')):
_install_rbenv(repo_cmd_runner)
with in_env(repo_cmd_runner) as ruby_env:

View File

@@ -1,7 +1,7 @@
ENVIRONMENT_DIR = None
def install_environment(repo_cmd_runner):
def install_environment(repo_cmd_runner, version='default'):
"""Installation for script type is a noop."""

View File

@@ -4,7 +4,7 @@ import shlex
ENVIRONMENT_DIR = None
def install_environment(repo_cmd_runner):
def install_environment(repo_cmd_runner, version='default'):
"""Installation for system type is a noop."""

View File

@@ -29,7 +29,10 @@ class Repository(object):
@cached_property
def languages(self):
return set(hook['language'] for hook in self.hooks.values())
return set(
(hook['language'], hook['language_version'])
for hook in self.hooks.values()
)
@cached_property
def hooks(self):
@@ -56,7 +59,7 @@ class Repository(object):
def install(self):
"""Install the hook repository."""
for language_name in self.languages:
for language_name, language_version in self.languages:
language = languages[language_name]
if (
language.ENVIRONMENT_DIR is None or
@@ -64,7 +67,7 @@ class Repository(object):
):
# The language is already installed
continue
language.install_environment(self.cmd_runner)
language.install_environment(self.cmd_runner, language_version)
def run_hook(self, hook_id, file_args):
"""Run a hook.

View File

@@ -113,7 +113,7 @@ def test_sha(mock_repo_config):
@pytest.mark.integration
def test_languages(config_for_python_hooks_repo, store):
repo = Repository.create(config_for_python_hooks_repo, store)
assert repo.languages == set(['python'])
assert repo.languages == set([('python', 'default')])
def test_reinstall(config_for_python_hooks_repo, store):