Coverage for tests / unit / tools / ruff / check / test_no_issues.py: 100%
28 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 execute_ruff_check with no issues found."""
3from __future__ import annotations
5from unittest.mock import MagicMock, patch
7from assertpy import assert_that
9from lintro.tools.implementations.ruff.check import execute_ruff_check
12def test_execute_ruff_check_no_issues_returns_success(
13 mock_ruff_tool: MagicMock,
14) -> None:
15 """Return success when no lint issues are found.
17 Args:
18 mock_ruff_tool: Mock RuffTool instance for testing.
19 """
20 with (
21 patch(
22 "lintro.tools.implementations.ruff.check.walk_files_with_excludes",
23 return_value=["test.py"],
24 ),
25 patch(
26 "lintro.tools.implementations.ruff.check.run_subprocess_with_timeout",
27 return_value=(True, "[]"),
28 ),
29 patch(
30 "lintro.tools.implementations.ruff.check.parse_ruff_output",
31 return_value=[],
32 ),
33 ):
34 result = execute_ruff_check(mock_ruff_tool, ["/test/project"])
36 assert_that(result.success).is_true()
37 assert_that(result.issues_count).is_equal_to(0)
38 assert_that(result.name).is_equal_to("ruff")
41def test_execute_ruff_check_no_issues_with_format_check(
42 mock_ruff_tool: MagicMock,
43) -> None:
44 """Return success when no lint or format issues are found.
46 Args:
47 mock_ruff_tool: Mock RuffTool instance for testing.
48 """
49 mock_ruff_tool.options["format_check"] = True
51 with (
52 patch(
53 "lintro.tools.implementations.ruff.check.walk_files_with_excludes",
54 return_value=["test.py"],
55 ),
56 patch(
57 "lintro.tools.implementations.ruff.check.run_subprocess_with_timeout",
58 return_value=(True, ""),
59 ),
60 patch(
61 "lintro.tools.implementations.ruff.check.parse_ruff_output",
62 return_value=[],
63 ),
64 patch(
65 "lintro.tools.implementations.ruff.check.parse_ruff_format_check_output",
66 return_value=[],
67 ),
68 ):
69 result = execute_ruff_check(mock_ruff_tool, ["/test/project"])
71 assert_that(result.success).is_true()
72 assert_that(result.issues_count).is_equal_to(0)
75def test_execute_ruff_check_empty_paths_returns_no_files_message(
76 mock_ruff_tool: MagicMock,
77) -> None:
78 """Return no files message when paths list is empty after validation.
80 Args:
81 mock_ruff_tool: Mock RuffTool instance for testing.
82 """
83 mock_ruff_tool._validate_paths.return_value = None
85 result = execute_ruff_check(mock_ruff_tool, [])
87 assert_that(result.success).is_true()
88 assert_that(result.output).is_equal_to("No files to check.")
89 assert_that(result.issues_count).is_equal_to(0)
92def test_execute_ruff_check_no_python_files_found(
93 mock_ruff_tool: MagicMock,
94) -> None:
95 """Return no Python files message when no matching files are discovered.
97 Args:
98 mock_ruff_tool: Mock RuffTool instance for testing.
99 """
100 with patch(
101 "lintro.tools.implementations.ruff.check.walk_files_with_excludes",
102 return_value=[],
103 ):
104 result = execute_ruff_check(mock_ruff_tool, ["/test/project"])
106 assert_that(result.success).is_true()
107 assert_that(result.output).is_equal_to("No Python files found to check.")
108 assert_that(result.issues_count).is_equal_to(0)