summaryrefslogtreecommitdiffstats
path: root/test/test_formatter_base.py
blob: 3e444a3d4078f0cc482791161be9954aa6d14f47 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""Tests related to base formatter."""
from __future__ import annotations

from pathlib import Path
from typing import Any

import pytest

from ansiblelint.formatters import BaseFormatter


@pytest.mark.parametrize(
    ("base_dir", "relative_path"),
    (
        (None, True),
        ("/whatever", False),
        (Path("/whatever"), False),
    ),
)
@pytest.mark.parametrize("path", ("/whatever/string", Path("/whatever/string")))
def test_base_formatter_when_base_dir(
    base_dir: Any, relative_path: bool, path: str
) -> None:
    """Check that base formatter accepts relative pathlib and str."""
    # Given
    base_formatter = BaseFormatter(base_dir, relative_path)  # type: ignore

    # When
    output_path = base_formatter._format_path(path)  # pylint: disable=protected-access

    # Then
    assert isinstance(output_path, (str, Path))
    # pylint: disable=protected-access
    assert base_formatter._base_dir is None or isinstance(
        base_formatter._base_dir, (str, Path)
    )
    assert output_path == path


@pytest.mark.parametrize(
    "base_dir",
    (
        Path("/whatever"),
        "/whatever",
    ),
)
@pytest.mark.parametrize("path", ("/whatever/string", Path("/whatever/string")))
def test_base_formatter_when_base_dir_is_given_and_relative_is_true(
    path: str | Path, base_dir: str | Path
) -> None:
    """Check that the base formatter equally accepts pathlib and str."""
    # Given
    base_formatter = BaseFormatter(base_dir, True)  # type: ignore

    # When
    # pylint: disable=protected-access
    output_path = base_formatter._format_path(path)

    # Then
    assert isinstance(output_path, (str, Path))
    # pylint: disable=protected-access
    assert isinstance(base_formatter._base_dir, (str, Path))
    assert output_path == Path(path).name


# vim: et:sw=4:syntax=python:ts=4: