Coverage for tests / unit / utils / config / conftest.py: 100%

17 statements  

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

1"""Pytest configuration for UnifiedConfigManager unit tests.""" 

2 

3from __future__ import annotations 

4 

5from typing import TYPE_CHECKING 

6from unittest.mock import MagicMock, patch 

7 

8import pytest 

9 

10from lintro.utils.unified_config import UnifiedConfigManager 

11 

12if TYPE_CHECKING: 

13 from collections.abc import Generator 

14 

15 

16@pytest.fixture 

17def mock_manager_dependencies() -> Generator[None, None, None]: 

18 """Mock all dependencies needed to create a UnifiedConfigManager. 

19 

20 This fixture patches all config loading functions to return empty defaults, 

21 allowing UnifiedConfigManager to be instantiated without filesystem access. 

22 

23 Yields: 

24 None: Context manager for mocking config dependencies. 

25 """ 

26 with ( 

27 patch( 

28 "lintro.utils.unified_config_manager.load_lintro_global_config", 

29 return_value={}, 

30 ), 

31 patch( 

32 "lintro.utils.unified_config_manager.get_tool_config_summary", 

33 return_value={}, 

34 ), 

35 patch( 

36 "lintro.utils.unified_config_manager.validate_config_consistency", 

37 return_value=[], 

38 ), 

39 ): 

40 yield 

41 

42 

43@pytest.fixture 

44def manager(mock_manager_dependencies: None) -> UnifiedConfigManager: 

45 """Create a UnifiedConfigManager instance with mocked dependencies. 

46 

47 Args: 

48 mock_manager_dependencies: Mocked dependencies fixture. 

49 

50 Returns: 

51 An initialized UnifiedConfigManager for testing. 

52 """ 

53 return UnifiedConfigManager() 

54 

55 

56@pytest.fixture 

57def mock_tool() -> MagicMock: 

58 """Create a mock tool object with name and set_options method. 

59 

60 Returns: 

61 MagicMock configured to act like a tool instance. 

62 """ 

63 mock = MagicMock() 

64 mock.name = "ruff" 

65 return mock