diff options
Diffstat (limited to 'test/test_formatter_base.py')
-rw-r--r-- | test/test_formatter_base.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/test_formatter_base.py b/test/test_formatter_base.py new file mode 100644 index 0000000..5cc86b8 --- /dev/null +++ b/test/test_formatter_base.py @@ -0,0 +1,74 @@ +"""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[var-annotated] + + # When + output_path = ( + base_formatter._format_path( # pylint: disable=protected-access # noqa: SLF001 + path, + ) + ) + + # 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[var-annotated] + + # When + # pylint: disable=protected-access + output_path = base_formatter._format_path(path) # noqa: SLF001 + + # 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: |