Each removed test re-asserts a contract a stronger test already owns at the real boundary; the keeper is named per group. - api_server CORS: `_origin_allowed` for an allowlisted origin and for an Origin-less client -> the configured-origin preflight test and every Origin-less /health request. The Idempotency-Key allow-header assertion moves into the preflight test instead of running a second identical preflight. - api_server room grants: the execution-policy predicate's two outcomes -> test_api_server_runs' HTTP grant-refresh tests (403 on drift, 200 on the authorized digest). - api_server multimodal: the pure input_image canonicalization -> the /v1/responses test that sends the same parts and asserts the same shape. - credential pool: matched-hint rotation (401) and second-429 rotation -> test_credential_pool_routing's real-pool hint test and TestPoolRotationCycle, which assert the same steps plus the exact rotate kwargs and swap. - shared metrics: two runtime cases that replay the send resolver's truth table -> TestSendRequiresCollection; the e2e gzip-retry test (both attempts compress in the same second, so it cannot see mtime) -> TestCompression::test_gzip_is_deterministic_across_time; e2e outbox untouched -> TestOutboxIsNotAQueue. - mcp oauth: provider reuse across reconnects -> the manager restore test; the non-tty private predicate -> build_oauth_auth's fail-fast test; the manager disk-watch test -> the integration test, which gains its one unique assertion (an unchanged file returns False). - startup watchdog: disarm-without-arm -> test_disarm_is_idempotent, whose second disarm runs in the same state and branch.
20 lines
861 B
Python
20 lines
861 B
Python
"""``_is_interactive()`` must not trust ``isatty()`` alone on Windows: the CRT reports a DEVNULL /
|
|
detached stdin as a TTY, so the background gateway looked interactive and launched browser OAuth."""
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.mark.platforms("windows")
|
|
def test_devnull_stdin_is_not_a_console_on_windows():
|
|
code = ("import sys, os; sys.path.insert(0, os.getcwd()); "
|
|
"from tools.mcp_oauth import _stdin_is_console; print(_stdin_is_console(), sys.stdin.isatty())")
|
|
proc = subprocess.run([sys.executable, "-c", code], stdin=subprocess.DEVNULL,
|
|
capture_output=True, text=True, cwd=os.getcwd(), timeout=60)
|
|
console, isatty = proc.stdout.split()
|
|
assert isatty == "True", "premise: the Windows CRT calls DEVNULL a tty (else this guard is moot)"
|
|
assert console == "False"
|