Coverage for tests / unit / utils / unified_config / test_dataclasses.py: 100%
24 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 ToolConfigInfo dataclass."""
3from __future__ import annotations
5import dataclasses
7from assertpy import assert_that
9from lintro.utils.unified_config import ToolConfigInfo
12def test_tool_config_info_default_values() -> None:
13 """Verify ToolConfigInfo has expected default values."""
14 info = ToolConfigInfo(tool_name="ruff")
16 assert_that(info.tool_name).is_equal_to("ruff")
17 assert_that(info.native_config).is_empty()
18 assert_that(info.lintro_tool_config).is_empty()
19 assert_that(info.effective_config).is_empty()
20 assert_that(info.warnings).is_empty()
21 assert_that(info.is_injectable).is_true()
24def test_tool_config_info_with_all_values() -> None:
25 """Verify ToolConfigInfo stores all provided values correctly."""
26 info = ToolConfigInfo(
27 tool_name="black",
28 native_config={"line-length": 88},
29 lintro_tool_config={"strict": True},
30 effective_config={"line_length": 100},
31 warnings=["Warning 1"],
32 is_injectable=False,
33 )
35 assert_that(info.tool_name).is_equal_to("black")
36 assert_that(info.native_config).is_equal_to({"line-length": 88})
37 assert_that(info.lintro_tool_config).is_equal_to({"strict": True})
38 assert_that(info.effective_config).is_equal_to({"line_length": 100})
39 assert_that(info.warnings).is_length(1)
40 assert_that(info.warnings[0]).is_equal_to("Warning 1")
41 assert_that(info.is_injectable).is_false()
44def test_tool_config_info_is_dataclass_instance() -> None:
45 """Verify ToolConfigInfo instances are proper dataclass instances."""
46 info = ToolConfigInfo(tool_name="prettier")
47 assert_that(dataclasses.is_dataclass(info)).is_true()