Coverage for tests / unit / enums / test_output_format.py: 100%
20 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Tests for lintro.enums.output_format module."""
3from __future__ import annotations
5import pytest
6from assertpy import assert_that
8from lintro.enums.output_format import OutputFormat, normalize_output_format
11@pytest.mark.parametrize(
12 ("member", "expected"),
13 [
14 (OutputFormat.PLAIN, "plain"),
15 (OutputFormat.GRID, "grid"),
16 (OutputFormat.MARKDOWN, "markdown"),
17 (OutputFormat.HTML, "html"),
18 (OutputFormat.JSON, "json"),
19 (OutputFormat.CSV, "csv"),
20 ],
21)
22def test_output_format_values(member: OutputFormat, expected: str) -> None:
23 """OutputFormat members have correct lowercase string values.
25 Args:
26 member: The OutputFormat enum member to test.
27 expected: The expected string value.
28 """
29 assert_that(member.value).is_equal_to(expected)
32def test_output_format_is_str_enum() -> None:
33 """OutputFormat members are string instances."""
34 assert_that(OutputFormat.GRID).is_instance_of(str)
37def test_normalize_output_format_from_string() -> None:
38 """normalize_output_format converts string to OutputFormat."""
39 assert_that(normalize_output_format("json")).is_equal_to(OutputFormat.JSON)
42def test_normalize_output_format_case_insensitive() -> None:
43 """normalize_output_format is case-insensitive."""
44 assert_that(normalize_output_format("JSON")).is_equal_to(OutputFormat.JSON)
45 assert_that(normalize_output_format("Json")).is_equal_to(OutputFormat.JSON)
48def test_normalize_output_format_passthrough() -> None:
49 """normalize_output_format returns OutputFormat unchanged."""
50 assert_that(normalize_output_format(OutputFormat.JSON)).is_equal_to(
51 OutputFormat.JSON,
52 )
55def test_normalize_output_format_invalid_defaults_to_grid() -> None:
56 """normalize_output_format defaults to GRID for invalid values."""
57 assert_that(normalize_output_format("invalid")).is_equal_to(OutputFormat.GRID)
60def test_normalize_output_format_none_defaults_to_grid() -> None:
61 """normalize_output_format defaults to GRID for None."""
62 # None has no .upper() method, triggers AttributeError
63 assert_that(normalize_output_format(None)).is_equal_to(OutputFormat.GRID) # type: ignore[arg-type]