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

1"""Tests for ToolConfigInfo dataclass.""" 

2 

3from __future__ import annotations 

4 

5import dataclasses 

6 

7from assertpy import assert_that 

8 

9from lintro.utils.unified_config import ToolConfigInfo 

10 

11 

12def test_tool_config_info_default_values() -> None: 

13 """Verify ToolConfigInfo has expected default values.""" 

14 info = ToolConfigInfo(tool_name="ruff") 

15 

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() 

22 

23 

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 ) 

34 

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() 

42 

43 

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()