"""Generic tests for AnsibleLintRule class.""" from __future__ import annotations from typing import TYPE_CHECKING, Any import pytest from ansiblelint.rules import AnsibleLintRule, RulesCollection if TYPE_CHECKING: from ansiblelint.config import Options def test_unjinja() -> None: """Verify that unjinja understands nested mustache.""" text = "{{ a }} {% b %} {# try to confuse parsing inside a comment { {{}} } #}" output = "JINJA_EXPRESSION JINJA_STATEMENT JINJA_COMMENT" assert AnsibleLintRule.unjinja(text) == output @pytest.mark.parametrize("rule_config", ({}, {"foo": True, "bar": 1})) def test_rule_config( rule_config: dict[str, Any], config_options: Options, ) -> None: """Check that a rule config can be accessed.""" config_options.rules["load-failure"] = rule_config rules = RulesCollection(options=config_options) for rule in rules: if rule.id == "load-failure": assert rule._collection # noqa: SLF001 assert rule.rule_config == rule_config