refactor: drop platform kwarg, fix PTY test cleanup

- Remove redundant platform= test seam from _terminal_may_leak_cpr();
  use monkeypatch.setattr(sys, 'platform', ...) consistently in both
  test files.
- Wrap PTY tests in try/finally for fd cleanup on assertion failure.
- Guard select.select() in terminal thread against OSError after fd
  close (fixes PytestUnhandledThreadExceptionWarning).
- Trim PR-number reference from test module docstring.
This commit is contained in:
kshitijk4poor 2026-07-21 10:51:22 +05:30 committed by kshitij
parent f6d82e1267
commit 2da64e7840
3 changed files with 99 additions and 79 deletions

View file

@ -295,17 +295,22 @@ class TestPromptToolkitTerminalCompatibility:
Broader coverage (Application wiring + delayed-CPR PTY repro) lives in
``tests/cli/test_cpr_local_leak.py``.
"""
import sys as _sys
from cli import _terminal_may_leak_cpr
for var in ("SSH_CONNECTION", "SSH_CLIENT", "SSH_TTY", "PROMPT_TOOLKIT_NO_CPR"):
monkeypatch.delenv(var, raising=False)
assert _terminal_may_leak_cpr(platform="linux") is True
assert _terminal_may_leak_cpr(platform="darwin") is True
assert _terminal_may_leak_cpr(platform="win32") is False
monkeypatch.setattr(_sys, "platform", "linux")
assert _terminal_may_leak_cpr() is True
monkeypatch.setattr(_sys, "platform", "darwin")
assert _terminal_may_leak_cpr() is True
monkeypatch.setattr(_sys, "platform", "win32")
assert _terminal_may_leak_cpr() is False
monkeypatch.setenv("PROMPT_TOOLKIT_NO_CPR", "1")
assert _terminal_may_leak_cpr(platform="win32") is True
assert _terminal_may_leak_cpr() is True
class TestSingleQueryState: