59 lines
1.3 KiB
Python
59 lines
1.3 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
import sys
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from pre_commit.languages import lua
|
||
|
from pre_commit.util import make_executable
|
||
|
from testing.language_helpers import run_language
|
||
|
|
||
|
pytestmark = pytest.mark.skipif(
|
||
|
sys.platform == 'win32',
|
||
|
reason='lua is not supported on windows',
|
||
|
)
|
||
|
|
||
|
|
||
|
def test_lua(tmp_path): # pragma: win32 no cover
|
||
|
rockspec = '''\
|
||
|
package = "hello"
|
||
|
version = "dev-1"
|
||
|
|
||
|
source = {
|
||
|
url = "git+ssh://git@github.com/pre-commit/pre-commit.git"
|
||
|
}
|
||
|
description = {}
|
||
|
dependencies = {}
|
||
|
build = {
|
||
|
type = "builtin",
|
||
|
modules = {},
|
||
|
install = {
|
||
|
bin = {"bin/hello-world-lua"}
|
||
|
},
|
||
|
}
|
||
|
'''
|
||
|
hello_world_lua = '''\
|
||
|
#!/usr/bin/env lua
|
||
|
print('hello world')
|
||
|
'''
|
||
|
tmp_path.joinpath('hello-dev-1.rockspec').write_text(rockspec)
|
||
|
bin_dir = tmp_path.joinpath('bin')
|
||
|
bin_dir.mkdir()
|
||
|
bin_file = bin_dir.joinpath('hello-world-lua')
|
||
|
bin_file.write_text(hello_world_lua)
|
||
|
make_executable(bin_file)
|
||
|
|
||
|
expected = (0, b'hello world\n')
|
||
|
assert run_language(tmp_path, lua, 'hello-world-lua') == expected
|
||
|
|
||
|
|
||
|
def test_lua_additional_dependencies(tmp_path): # pragma: win32 no cover
|
||
|
ret, out = run_language(
|
||
|
tmp_path,
|
||
|
lua,
|
||
|
'luacheck --version',
|
||
|
deps=('luacheck',),
|
||
|
)
|
||
|
assert ret == 0
|
||
|
assert out.startswith(b'Luacheck: ')
|