Adding upstream version 4.1.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
c4faf5b6cb
commit
a38bf5d420
14 changed files with 374 additions and 21 deletions
97
tests/languages/julia_test.py
Normal file
97
tests/languages/julia_test.py
Normal file
|
@ -0,0 +1,97 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from pre_commit.languages import julia
|
||||
from testing.language_helpers import run_language
|
||||
from testing.util import cwd
|
||||
|
||||
|
||||
def _make_hook(tmp_path, julia_code):
|
||||
src_dir = tmp_path.joinpath('src')
|
||||
src_dir.mkdir()
|
||||
src_dir.joinpath('main.jl').write_text(julia_code)
|
||||
tmp_path.joinpath('Project.toml').write_text(
|
||||
'[deps]\n'
|
||||
'Example = "7876af07-990d-54b4-ab0e-23690620f79a"\n',
|
||||
)
|
||||
|
||||
|
||||
def test_julia_hook(tmp_path):
|
||||
code = """
|
||||
using Example
|
||||
function main()
|
||||
println("Hello, world!")
|
||||
end
|
||||
main()
|
||||
"""
|
||||
_make_hook(tmp_path, code)
|
||||
expected = (0, b'Hello, world!\n')
|
||||
assert run_language(tmp_path, julia, 'src/main.jl') == expected
|
||||
|
||||
|
||||
def test_julia_hook_manifest(tmp_path):
|
||||
code = """
|
||||
using Example
|
||||
println(pkgversion(Example))
|
||||
"""
|
||||
_make_hook(tmp_path, code)
|
||||
|
||||
tmp_path.joinpath('Manifest.toml').write_text(
|
||||
'manifest_format = "2.0"\n\n'
|
||||
'[[deps.Example]]\n'
|
||||
'git-tree-sha1 = "11820aa9c229fd3833d4bd69e5e75ef4e7273bf1"\n'
|
||||
'uuid = "7876af07-990d-54b4-ab0e-23690620f79a"\n'
|
||||
'version = "0.5.4"\n',
|
||||
)
|
||||
expected = (0, b'0.5.4\n')
|
||||
assert run_language(tmp_path, julia, 'src/main.jl') == expected
|
||||
|
||||
|
||||
def test_julia_hook_args(tmp_path):
|
||||
code = """
|
||||
function main(argv)
|
||||
foreach(println, argv)
|
||||
end
|
||||
main(ARGS)
|
||||
"""
|
||||
_make_hook(tmp_path, code)
|
||||
expected = (0, b'--arg1\n--arg2\n')
|
||||
assert run_language(
|
||||
tmp_path, julia, 'src/main.jl --arg1 --arg2',
|
||||
) == expected
|
||||
|
||||
|
||||
def test_julia_hook_additional_deps(tmp_path):
|
||||
code = """
|
||||
using TOML
|
||||
function main()
|
||||
project_file = Base.active_project()
|
||||
dict = TOML.parsefile(project_file)
|
||||
for (k, v) in dict["deps"]
|
||||
println(k, " = ", v)
|
||||
end
|
||||
end
|
||||
main()
|
||||
"""
|
||||
_make_hook(tmp_path, code)
|
||||
deps = ('TOML=fa267f1f-6049-4f14-aa54-33bafae1ed76',)
|
||||
ret, out = run_language(tmp_path, julia, 'src/main.jl', deps=deps)
|
||||
assert ret == 0
|
||||
assert b'Example = 7876af07-990d-54b4-ab0e-23690620f79a' in out
|
||||
assert b'TOML = fa267f1f-6049-4f14-aa54-33bafae1ed76' in out
|
||||
|
||||
|
||||
def test_julia_repo_local(tmp_path):
|
||||
env_dir = tmp_path.joinpath('envdir')
|
||||
env_dir.mkdir()
|
||||
local_dir = tmp_path.joinpath('local')
|
||||
local_dir.mkdir()
|
||||
local_dir.joinpath('local.jl').write_text(
|
||||
'using TOML; foreach(println, ARGS)',
|
||||
)
|
||||
with cwd(local_dir):
|
||||
deps = ('TOML=fa267f1f-6049-4f14-aa54-33bafae1ed76',)
|
||||
expected = (0, b'--local-arg1\n--local-arg2\n')
|
||||
assert run_language(
|
||||
env_dir, julia, 'local.jl --local-arg1 --local-arg2',
|
||||
deps=deps, is_local=True,
|
||||
) == expected
|
Loading…
Add table
Add a link
Reference in a new issue