summaryrefslogtreecommitdiffstats
path: root/test/test_list_rules.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_list_rules.py')
-rw-r--r--test/test_list_rules.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/test/test_list_rules.py b/test/test_list_rules.py
new file mode 100644
index 0000000..dab16e3
--- /dev/null
+++ b/test/test_list_rules.py
@@ -0,0 +1,76 @@
+"""Tests related to our logging/verbosity setup."""
+
+from pathlib import Path
+
+import pytest
+
+from ansiblelint.testing import run_ansible_lint
+
+
+def test_list_rules_includes_opt_in_rules(project_path: Path) -> None:
+ """Checks that listing rules also includes the opt-in rules."""
+ # Piggyback off the .yamllint in the root of the repo, just for testing.
+ # We'll "override" it with the one in the fixture.
+ fakerole = Path("test") / "fixtures" / "list-rules-tests"
+
+ result_list_rules = run_ansible_lint("-L", fakerole, cwd=project_path)
+
+ assert ("opt-in" in result_list_rules.stdout) is True
+
+
+@pytest.mark.parametrize(
+ ("result", "returncode", "format_string"),
+ (
+ (False, 0, "brief"),
+ (False, 0, "full"),
+ (False, 0, "md"),
+ (True, 2, "json"),
+ (True, 2, "codeclimate"),
+ (True, 2, "quiet"),
+ (True, 2, "pep8"),
+ (True, 2, "foo"),
+ ),
+ ids=(
+ "plain",
+ "full",
+ "md",
+ "json",
+ "codeclimate",
+ "quiet",
+ "pep8",
+ "foo",
+ ),
+)
+def test_list_rules_with_format_option(
+ result: bool,
+ returncode: int,
+ format_string: str,
+ project_path: Path,
+) -> None:
+ """Checks that listing rules with format options works."""
+ # Piggyback off the .yamllint in the root of the repo, just for testing.
+ # We'll "override" it with the one in the fixture.
+ fakerole = Path("test") / "fixtures" / "list-rules-tests"
+
+ result_list_rules = run_ansible_lint(
+ "-f",
+ format_string,
+ "-L",
+ fakerole,
+ cwd=project_path,
+ )
+
+ assert (f"invalid choice: '{format_string}'" in result_list_rules.stderr) is result
+ assert ("syntax-check" in result_list_rules.stdout) is not result
+ assert result_list_rules.returncode is returncode
+
+
+def test_list_tags_includes_opt_in_rules(project_path: Path) -> None:
+ """Checks that listing tags also includes the opt-in rules."""
+ # Piggyback off the .yamllint in the root of the repo, just for testing.
+ # We'll "override" it with the one in the fixture.
+ fakerole = Path("test") / "fixtures" / "list-rules-tests"
+
+ result_list_tags = run_ansible_lint("-L", str(fakerole), cwd=project_path)
+
+ assert ("opt-in" in result_list_tags.stdout) is True