Coverage for tests / unit / utils / unified_config / test_tool_priority.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-04-03 18:53 +0000

1"""Tests for get_tool_priority function.""" 

2 

3from __future__ import annotations 

4 

5from typing import Any 

6from unittest.mock import patch 

7 

8import pytest 

9from assertpy import assert_that 

10 

11from lintro.utils.unified_config import get_tool_priority 

12 

13 

14@pytest.mark.parametrize( 

15 ("tool_name", "expected_priority"), 

16 [ 

17 ("black", 15), 

18 ("ruff", 20), 

19 ("markdownlint", 30), 

20 ("yamllint", 35), 

21 ("bandit", 45), 

22 ("pytest", 100), 

23 ], 

24 ids=[ 

25 "black", 

26 "ruff", 

27 "markdownlint", 

28 "yamllint", 

29 "bandit", 

30 "pytest", 

31 ], 

32) 

33def test_get_tool_priority_returns_default_values( 

34 mock_empty_tool_order_config: Any, 

35 tool_name: str, 

36 expected_priority: int, 

37) -> None: 

38 """Verify default priorities for known tools. 

39 

40 Args: 

41 mock_empty_tool_order_config: Mock empty tool order configuration. 

42 tool_name: Name of the tool. 

43 expected_priority: Expected priority value. 

44 """ 

45 result = get_tool_priority(tool_name) 

46 assert_that(result).is_equal_to(expected_priority) 

47 

48 

49def test_get_tool_priority_unknown_tool_returns_50( 

50 mock_empty_tool_order_config: Any, 

51) -> None: 

52 """Verify unknown tools get default priority of 50. 

53 

54 Args: 

55 mock_empty_tool_order_config: Mock empty tool order configuration. 

56 """ 

57 result = get_tool_priority("unknown_tool") 

58 assert_that(result).is_equal_to(50) 

59 

60 

61def test_get_tool_priority_respects_override() -> None: 

62 """Verify priority overrides from config take precedence.""" 

63 with patch( 

64 "lintro.utils.config_priority.get_tool_order_config", 

65 return_value={"priority_overrides": {"ruff": 5}}, 

66 ): 

67 result = get_tool_priority("ruff") 

68 assert_that(result).is_equal_to(5) 

69 

70 

71def test_get_tool_priority_override_is_case_insensitive() -> None: 

72 """Verify priority override keys are case-insensitive.""" 

73 with patch( 

74 "lintro.utils.config_priority.get_tool_order_config", 

75 return_value={"priority_overrides": {"RUFF": 5}}, 

76 ): 

77 result = get_tool_priority("ruff") 

78 assert_that(result).is_equal_to(5)