Coverage for tests / unit / tools / ruff / check / test_timeout.py: 100%

12 statements  

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

1"""Tests for timeout configuration in execute_ruff_check.""" 

2 

3from __future__ import annotations 

4 

5from unittest.mock import MagicMock, patch 

6 

7from assertpy import assert_that 

8 

9from lintro.tools.implementations.ruff.check import ( 

10 RUFF_DEFAULT_TIMEOUT, 

11 execute_ruff_check, 

12) 

13 

14 

15def test_execute_ruff_check_uses_default_timeout() -> None: 

16 """Verify default timeout constant is set correctly.""" 

17 assert_that(RUFF_DEFAULT_TIMEOUT).is_equal_to(30) 

18 

19 

20def test_execute_ruff_check_uses_tool_timeout( 

21 mock_ruff_tool: MagicMock, 

22) -> None: 

23 """Use timeout from tool options. 

24 

25 Args: 

26 mock_ruff_tool: Mock RuffTool instance for testing. 

27 """ 

28 mock_ruff_tool.options["timeout"] = 60 

29 

30 with ( 

31 patch( 

32 "lintro.tools.implementations.ruff.check.walk_files_with_excludes", 

33 return_value=["test.py"], 

34 ), 

35 patch( 

36 "lintro.tools.implementations.ruff.check.run_subprocess_with_timeout", 

37 return_value=(True, "[]"), 

38 ) as mock_subprocess, 

39 patch( 

40 "lintro.tools.implementations.ruff.check.parse_ruff_output", 

41 return_value=[], 

42 ), 

43 patch( 

44 "lintro.tools.implementations.ruff.check.get_timeout_value", 

45 return_value=60, 

46 ), 

47 ): 

48 execute_ruff_check(mock_ruff_tool, ["/test/project"]) 

49 

50 call_kwargs = mock_subprocess.call_args.kwargs 

51 assert_that(call_kwargs.get("timeout")).is_equal_to(60)