summaryrefslogtreecommitdiffstats
path: root/tests/languages
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-09-04 09:08:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-09-04 09:08:20 +0000
commit6b73455b1719f4bfff006c7d9881935cc1e6a350 (patch)
tree393586e5ce18b866b8382c6a1ead7922d4b37039 /tests/languages
parentReleasing debian version 3.3.3-2. (diff)
downloadpre-commit-6b73455b1719f4bfff006c7d9881935cc1e6a350.tar.xz
pre-commit-6b73455b1719f4bfff006c7d9881935cc1e6a350.zip
Merging upstream version 3.4.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/languages')
-rw-r--r--tests/languages/golang_test.py2
-rw-r--r--tests/languages/haskell_test.py50
2 files changed, 51 insertions, 1 deletions
diff --git a/tests/languages/golang_test.py b/tests/languages/golang_test.py
index ec5a878..6406267 100644
--- a/tests/languages/golang_test.py
+++ b/tests/languages/golang_test.py
@@ -128,7 +128,7 @@ def test_local_golang_additional_deps(tmp_path):
deps=('golang.org/x/example/hello@latest',),
)
- assert ret == (0, b'Hello, Go examples!\n')
+ assert ret == (0, b'Hello, world!\n')
def test_golang_hook_still_works_when_gobin_is_set(tmp_path):
diff --git a/tests/languages/haskell_test.py b/tests/languages/haskell_test.py
new file mode 100644
index 0000000..f888109
--- /dev/null
+++ b/tests/languages/haskell_test.py
@@ -0,0 +1,50 @@
+from __future__ import annotations
+
+import pytest
+
+from pre_commit.errors import FatalError
+from pre_commit.languages import haskell
+from pre_commit.util import win_exe
+from testing.language_helpers import run_language
+
+
+def test_run_example_executable(tmp_path):
+ example_cabal = '''\
+cabal-version: 2.4
+name: example
+version: 0.1.0.0
+
+executable example
+ main-is: Main.hs
+
+ build-depends: base >=4
+ default-language: Haskell2010
+'''
+ main_hs = '''\
+module Main where
+
+main :: IO ()
+main = putStrLn "Hello, Haskell!"
+'''
+ tmp_path.joinpath('example.cabal').write_text(example_cabal)
+ tmp_path.joinpath('Main.hs').write_text(main_hs)
+
+ result = run_language(tmp_path, haskell, 'example')
+ assert result == (0, b'Hello, Haskell!\n')
+
+ # should not symlink things into environments
+ exe = tmp_path.joinpath(win_exe('hs_env-default/bin/example'))
+ assert exe.is_file()
+ assert not exe.is_symlink()
+
+
+def test_run_dep(tmp_path):
+ result = run_language(tmp_path, haskell, 'hello', deps=['hello'])
+ assert result == (0, b'Hello, World!\n')
+
+
+def test_run_empty(tmp_path):
+ with pytest.raises(FatalError) as excinfo:
+ run_language(tmp_path, haskell, 'example')
+ msg, = excinfo.value.args
+ assert msg == 'Expected .cabal files or additional_dependencies'