mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Julia: copy src files
This commit is contained in:
parent
a1d7bed86f
commit
30382b9200
2 changed files with 46 additions and 0 deletions
|
|
@ -99,6 +99,14 @@ def install_environment(
|
|||
shutil.copy(manifest_file, envdir)
|
||||
break
|
||||
|
||||
# copy `src` files if they exist
|
||||
src_dir = prefix.path('src')
|
||||
if os.path.isdir(src_dir):
|
||||
shutil.copytree(
|
||||
src_dir, os.path.join(envdir, 'src'),
|
||||
dirs_exist_ok=True,
|
||||
)
|
||||
|
||||
# Julia code to instantiate the hook environment
|
||||
julia_code = """
|
||||
@assert length(ARGS) > 0
|
||||
|
|
|
|||
|
|
@ -95,3 +95,41 @@ def test_julia_repo_local(tmp_path):
|
|||
env_dir, julia, 'local.jl --local-arg1 --local-arg2',
|
||||
deps=deps, is_local=True,
|
||||
) == expected
|
||||
|
||||
|
||||
def _make_src_hook(tmp_path, pkg_code, script_code):
|
||||
# here we setup a hook with a src dir and a script dir
|
||||
src_dir = tmp_path.joinpath('src')
|
||||
src_dir.mkdir()
|
||||
src_dir.joinpath('ExamplePkg.jl').write_text(pkg_code)
|
||||
|
||||
script_dir = tmp_path.joinpath('scripts')
|
||||
script_dir.mkdir()
|
||||
script_dir.joinpath('main.jl').write_text(script_code)
|
||||
|
||||
tmp_path.joinpath('Project.toml').write_text(
|
||||
'name = "ExamplePkg"\n'
|
||||
'uuid = "df230c44-b485-4b6a-bafb-763c50abe554"\n'
|
||||
'[deps]\n'
|
||||
'Example = "7876af07-990d-54b4-ab0e-23690620f79a"\n',
|
||||
)
|
||||
|
||||
|
||||
def test_julia_hook_src(tmp_path):
|
||||
pkg_code = """
|
||||
module ExamplePkg
|
||||
using Example
|
||||
export main
|
||||
function main()
|
||||
println("Hello, world!")
|
||||
end
|
||||
end
|
||||
"""
|
||||
|
||||
script_code = """
|
||||
using ExamplePkg
|
||||
main()
|
||||
"""
|
||||
_make_src_hook(tmp_path, pkg_code, script_code)
|
||||
expected = (0, b'Hello, world!\n')
|
||||
assert run_language(tmp_path, julia, 'scripts/main.jl') == expected
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue