Coverage for tests / unit / pytest / test_pytest_programmatic_api.py: 100%
103 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"""Unit tests for pytest programmatic API."""
3from __future__ import annotations
5from unittest.mock import Mock, patch
7from assertpy import assert_that
9from lintro.cli_utils.commands.test import test
12def test_test_function_with_default_options() -> None:
13 """Test programmatic test function with explicit default options."""
14 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
15 mock_result = Mock()
16 mock_result.exit_code = 0
17 mock_invoke.return_value = mock_result
18 test(
19 paths=(),
20 exclude=None,
21 include_venv=False,
22 output=None,
23 output_format="grid",
24 group_by="file",
25 verbose=False,
26 tool_options=None,
27 )
28 assert_that(mock_invoke.called).is_true()
31def test_test_function_with_paths() -> None:
32 """Test programmatic test function with paths."""
33 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
34 mock_result = Mock()
35 mock_result.exit_code = 0
36 mock_invoke.return_value = mock_result
37 test(
38 paths=("tests/",),
39 exclude=None,
40 include_venv=False,
41 output=None,
42 output_format="grid",
43 group_by="file",
44 verbose=False,
45 tool_options=None,
46 )
47 call_args = mock_invoke.call_args
48 assert_that(call_args[0][1]).contains("tests/")
51def test_test_function_with_exclude() -> None:
52 """Test programmatic test function with exclude patterns."""
53 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
54 mock_result = Mock()
55 mock_result.exit_code = 0
56 mock_invoke.return_value = mock_result
57 test(
58 paths=(),
59 exclude="*.venv",
60 include_venv=False,
61 output=None,
62 output_format="grid",
63 group_by="file",
64 verbose=False,
65 tool_options=None,
66 )
67 call_args = mock_invoke.call_args
68 assert_that(call_args[0][1]).contains("--exclude")
69 assert_that(call_args[0][1]).contains("*.venv")
72def test_test_function_with_include_venv() -> None:
73 """Test programmatic test function with include-venv."""
74 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
75 mock_result = Mock()
76 mock_result.exit_code = 0
77 mock_invoke.return_value = mock_result
78 test(
79 paths=(),
80 exclude=None,
81 include_venv=True,
82 output=None,
83 output_format="grid",
84 group_by="file",
85 verbose=False,
86 tool_options=None,
87 )
88 call_args = mock_invoke.call_args
89 assert_that(call_args[0][1]).contains("--include-venv")
92def test_test_function_with_output() -> None:
93 """Test programmatic test function with output file."""
94 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
95 mock_result = Mock()
96 mock_result.exit_code = 0
97 mock_invoke.return_value = mock_result
98 test(
99 paths=(),
100 exclude=None,
101 include_venv=False,
102 output="/tmp/output.txt",
103 output_format="grid",
104 group_by="file",
105 verbose=False,
106 tool_options=None,
107 )
108 call_args = mock_invoke.call_args
109 assert_that(call_args[0][1]).contains("--output")
110 assert_that(call_args[0][1]).contains("/tmp/output.txt")
113def test_test_function_with_output_format() -> None:
114 """Test programmatic test function with output format."""
115 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
116 mock_result = Mock()
117 mock_result.exit_code = 0
118 mock_invoke.return_value = mock_result
119 test(
120 paths=(),
121 exclude=None,
122 include_venv=False,
123 output=None,
124 output_format="json",
125 group_by="file",
126 verbose=False,
127 tool_options=None,
128 )
129 call_args = mock_invoke.call_args
130 assert_that(call_args[0][1]).contains("--output-format")
131 assert_that(call_args[0][1]).contains("json")
134def test_test_function_with_group_by() -> None:
135 """Test programmatic test function with group-by."""
136 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
137 mock_result = Mock()
138 mock_result.exit_code = 0
139 mock_invoke.return_value = mock_result
140 test(
141 paths=(),
142 exclude=None,
143 include_venv=False,
144 output=None,
145 output_format="grid",
146 group_by="code",
147 verbose=False,
148 tool_options=None,
149 )
150 call_args = mock_invoke.call_args
151 assert_that(call_args[0][1]).contains("--group-by")
152 assert_that(call_args[0][1]).contains("code")
155def test_test_function_with_verbose() -> None:
156 """Test programmatic test function with verbose flag."""
157 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
158 mock_result = Mock()
159 mock_result.exit_code = 0
160 mock_invoke.return_value = mock_result
161 test(
162 paths=(),
163 exclude=None,
164 include_venv=False,
165 output=None,
166 output_format="grid",
167 group_by="file",
168 verbose=True,
169 tool_options=None,
170 )
171 call_args = mock_invoke.call_args
172 assert_that(call_args[0][1]).contains("--verbose")
175def test_test_function_with_raw_output() -> None:
176 """Test programmatic test function with raw-output flag."""
177 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
178 mock_result = Mock()
179 mock_result.exit_code = 0
180 mock_invoke.return_value = mock_result
181 test(
182 paths=(),
183 exclude=None,
184 include_venv=False,
185 output=None,
186 output_format="grid",
187 group_by="file",
188 verbose=False,
189 raw_output=True,
190 tool_options=None,
191 )
192 call_args = mock_invoke.call_args
193 assert_that(call_args[0][1]).contains("--raw-output")
196def test_test_function_with_tool_options() -> None:
197 """Test programmatic test function with tool options."""
198 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
199 mock_result = Mock()
200 mock_result.exit_code = 0
201 mock_invoke.return_value = mock_result
202 test(
203 paths=(),
204 exclude=None,
205 include_venv=False,
206 output=None,
207 output_format="grid",
208 group_by="file",
209 verbose=False,
210 tool_options="maxfail=5",
211 )
212 call_args = mock_invoke.call_args
213 assert_that(call_args[0][1]).contains("--tool-options")
214 assert_that(call_args[0][1]).contains("maxfail=5")
217def test_test_function_exit_code_success() -> None:
218 """Test programmatic function exits with success code."""
219 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
220 mock_result = Mock()
221 mock_result.exit_code = 0
222 mock_invoke.return_value = mock_result
223 # test() returns None on success, no assignment needed
224 test(
225 paths=(),
226 exclude=None,
227 include_venv=False,
228 output=None,
229 output_format="grid",
230 group_by="file",
231 verbose=False,
232 tool_options=None,
233 )
234 assert_that(mock_invoke.called).is_true()
237def test_test_function_exit_code_failure() -> None:
238 """Test programmatic function exits with failure code."""
239 with patch("lintro.cli_utils.commands.test.CliRunner.invoke") as mock_invoke:
240 mock_result = Mock()
241 mock_result.exit_code = 1
242 mock_invoke.return_value = mock_result
243 with patch("sys.exit") as mock_exit:
244 test(
245 paths=(),
246 exclude=None,
247 include_venv=False,
248 output=None,
249 output_format="grid",
250 group_by="file",
251 verbose=False,
252 tool_options=None,
253 )
254 mock_exit.assert_called_once_with(1)