blob: 4afcd596e1d9551db758bc88772bd5f8915000ac (
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
|
"""Generic tests for AnsibleLintRule class."""
from __future__ import annotations
from typing import Any
import pytest
from _pytest.monkeypatch import MonkeyPatch
from ansiblelint.config import options
from ansiblelint.rules import AnsibleLintRule
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())
|