MCPcopy Index your code
hub / github.com/codespell-project/codespell / test_interactivity

Function test_interactivity

codespell_lib/tests/test_basic.py:255–318  ·  view source on GitHub ↗

Test interaction

(
    tmp_path: Path,
    capsys: pytest.CaptureFixture[str],
)

Source from the content-addressed store, hash-verified

253
254
255def test_interactivity(
256 tmp_path: Path,
257 capsys: pytest.CaptureFixture[str],
258) -> None:
259 """Test interaction"""
260 # Windows can't read a currently-opened file, so here we use
261 # NamedTemporaryFile just to get a good name
262 fname = tmp_path / "tmp"
263 fname.touch()
264 try:
265 assert cs.main(fname) == 0, "empty file"
266 fname.write_text("abandonned\n")
267 with mock.patch.object(sys, "argv", ("-i", "-1", fname)):
268 with pytest.raises(SystemExit) as e:
269 cs.main("-i", "-1", fname)
270 assert e.type is SystemExit
271 assert e.value.code != 0
272 with FakeStdin("n\n"):
273 result = cs.main("-w", "-i", "3", fname, std=True)
274 assert isinstance(result, tuple)
275 code, stdout, _ = result
276 assert code == 0
277 assert "==>" in stdout
278 with FakeStdin("x\ny\n"):
279 assert cs.main("-w", "-i", "3", fname) == 0
280 assert cs.main(fname) == 0
281 finally:
282 fname.unlink()
283
284 # New example
285 fname = tmp_path / "tmp2"
286 fname.write_text("abandonned\n")
287 try:
288 assert cs.main(fname) == 1
289 with FakeStdin(" "): # blank input -> Y
290 assert cs.main("-w", "-i", "3", fname) == 0
291 assert cs.main(fname) == 0
292 finally:
293 fname.unlink()
294
295 # multiple options
296 fname = tmp_path / "tmp3"
297 fname.write_text("ackward\n")
298 try:
299 assert cs.main(fname) == 1
300 with FakeStdin(" \n"): # blank input -> nothing
301 assert cs.main("-w", "-i", "3", fname) == 0
302 assert cs.main(fname) == 1
303 with FakeStdin("0\n"): # blank input -> nothing
304 assert cs.main("-w", "-i", "3", fname) == 0
305 assert cs.main(fname) == 0
306 assert fname.read_text() == "awkward\n"
307 fname.write_text("ackward\n")
308 assert cs.main(fname) == 1
309 with FakeStdin("x\n1\n"): # blank input -> nothing
310 result = cs.main("-w", "-i", "3", fname, std=True)
311 assert isinstance(result, tuple)
312 code, stdout, _ = result

Callers

nothing calls this directly

Calls 2

FakeStdinFunction · 0.85
mainMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…