45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from pre_commit.errors import FatalError
|
|
from pre_commit.languages import coursier
|
|
from testing.language_helpers import run_language
|
|
|
|
|
|
def test_coursier_hook(tmp_path):
|
|
echo_java_json = '''\
|
|
{
|
|
"repositories": ["central"],
|
|
"dependencies": ["io.get-coursier:echo:latest.stable"]
|
|
}
|
|
'''
|
|
|
|
channel_dir = tmp_path.joinpath('.pre-commit-channel')
|
|
channel_dir.mkdir()
|
|
channel_dir.joinpath('echo-java.json').write_text(echo_java_json)
|
|
|
|
ret = run_language(
|
|
tmp_path,
|
|
coursier,
|
|
'echo-java',
|
|
args=('Hello', 'World', 'from', 'coursier'),
|
|
)
|
|
assert ret == (0, b'Hello World from coursier\n')
|
|
|
|
|
|
def test_coursier_hook_additional_dependencies(tmp_path):
|
|
ret = run_language(
|
|
tmp_path,
|
|
coursier,
|
|
'scalafmt --version',
|
|
deps=('scalafmt:3.6.1',),
|
|
)
|
|
assert ret == (0, b'scalafmt 3.6.1\n')
|
|
|
|
|
|
def test_error_if_no_deps_or_channel(tmp_path):
|
|
with pytest.raises(FatalError) as excinfo:
|
|
run_language(tmp_path, coursier, 'dne')
|
|
msg, = excinfo.value.args
|
|
assert msg == 'expected .pre-commit-channel dir or additional_dependencies'
|