summaryrefslogtreecommitdiffstats
path: root/test/test_verbosity.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_verbosity.py')
-rw-r--r--test/test_verbosity.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/test/test_verbosity.py b/test/test_verbosity.py
new file mode 100644
index 0000000..18d7fd5
--- /dev/null
+++ b/test/test_verbosity.py
@@ -0,0 +1,96 @@
+"""Tests related to our logging/verbosity setup."""
+from __future__ import annotations
+
+import os
+
+import pytest
+
+from ansiblelint.testing import run_ansible_lint
+
+
+# substrs is a list of tuples, where:
+# component 1 is the substring in question
+# component 2 is whether or not to invert ("NOT") the match
+@pytest.mark.parametrize(
+ ("verbosity", "substrs"),
+ (
+ (
+ "",
+ [
+ ("WARNING Listing 1 violation(s) that are fatal", False),
+ ("DEBUG ", True),
+ ("INFO ", True),
+ ],
+ ),
+ (
+ "-q",
+ [
+ ("WARNING ", True),
+ ("DEBUG ", True),
+ ("INFO ", True),
+ ],
+ ),
+ (
+ "-qq",
+ [
+ ("WARNING ", True),
+ ("DEBUG ", True),
+ ("INFO ", True),
+ ],
+ ),
+ (
+ "-v",
+ [
+ ("WARNING Listing 1 violation(s) that are fatal", False),
+ ("INFO Set ANSIBLE_LIBRARY=", False),
+ ("DEBUG ", True),
+ ],
+ ),
+ (
+ "-vv",
+ [
+ # ("DEBUG Loading custom .yamllint config file,", False),
+ ("WARNING Listing 1 violation(s) that are fatal", False),
+ ("INFO Set ANSIBLE_LIBRARY=", False),
+ # ("DEBUG Effective yamllint rules used", False),
+ ],
+ ),
+ (
+ "-vvvvvvvvvvvvvvvvvvvvvvvvv",
+ [
+ # ("DEBUG Loading custom .yamllint config file,", False),
+ ("WARNING Listing 1 violation(s) that are fatal", False),
+ ("INFO Set ANSIBLE_LIBRARY=", False),
+ # ("DEBUG Effective yamllint rules used", False),
+ ],
+ ),
+ ),
+ ids=(
+ "default-verbosity",
+ "quiet",
+ "really-quiet",
+ "loquacious",
+ "really-loquacious",
+ 'really-loquacious but with more "v"s -- same as -vv',
+ ),
+)
+def test_default_verbosity(verbosity: str, substrs: list[tuple[str, bool]]) -> None:
+ """Checks that our default verbosity displays (only) warnings."""
+ # Piggyback off the .yamllint in the root of the repo, just for testing.
+ # We'll "override" it with the one in the fixture, to produce a warning.
+ cwd = os.path.realpath(
+ os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")
+ )
+
+ fakerole = os.path.join("test", "fixtures", "verbosity-tests")
+
+ if verbosity:
+ result = run_ansible_lint(verbosity, fakerole, cwd=cwd)
+ else:
+ result = run_ansible_lint(fakerole, cwd=cwd)
+
+ for substr, invert in substrs:
+ if invert:
+ assert substr not in result.stderr, result.stderr
+ else:
+ assert substr in result.stderr, result.stderr