summaryrefslogtreecommitdiffstats
path: root/test/test_app.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_app.py')
-rw-r--r--test/test_app.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/test_app.py b/test/test_app.py
new file mode 100644
index 0000000..140f5f6
--- /dev/null
+++ b/test/test_app.py
@@ -0,0 +1,30 @@
+"""Test for app module."""
+from pathlib import Path
+
+from ansiblelint.constants import RC
+from ansiblelint.file_utils import Lintable
+from ansiblelint.testing import run_ansible_lint
+
+
+def test_generate_ignore(tmp_path: Path) -> None:
+ """Validate that --generate-ignore dumps expected ignore to the file."""
+ lintable = Lintable(tmp_path / "vars.yaml")
+ lintable.content = "foo: bar\nfoo: baz\n"
+ lintable.write(force=True)
+ ignore_file = tmp_path / ".ansible-lint-ignore"
+ assert not ignore_file.exists()
+ result = run_ansible_lint(lintable.filename, "--generate-ignore", cwd=tmp_path)
+ assert result.returncode == 2
+
+ assert ignore_file.exists()
+ with ignore_file.open(encoding="utf-8") as f:
+ assert "vars.yaml yaml[key-duplicates]\n" in f.readlines()
+ # Run again and now we expect to succeed as we have an ignore file.
+ result = run_ansible_lint(lintable.filename, cwd=tmp_path)
+ assert result.returncode == 0
+
+
+def test_app_no_matches(tmp_path: Path) -> None:
+ """Validate that linter returns special exit code if no files are analyzed."""
+ result = run_ansible_lint(cwd=tmp_path)
+ assert result.returncode == RC.NO_FILES_MATCHED