blob: c576e0f9fbffb27b1498182e3d98439c454c4a4f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
"""Generic tests for AnsibleLintRule class."""
from __future__ import annotations
from typing import TYPE_CHECKING, Any
import pytest
from ansiblelint.config import options
from ansiblelint.rules import AnsibleLintRule
if TYPE_CHECKING:
from _pytest.monkeypatch import MonkeyPatch
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], monkeypatch: MonkeyPatch) -> None:
"""Check that a rule config is inherited from options."""
rule_id = "rule-0"
monkeypatch.setattr(AnsibleLintRule, "id", rule_id)
monkeypatch.setitem(options.rules, rule_id, rule_config)
rule = AnsibleLintRule()
assert set(rule.rule_config.items()) == set(rule_config.items())
assert all(rule.get_config(k) == v for k, v in rule_config.items())
|