test: keep gateway-dependent e2e out of the commit gate
The pre-commit hook runs the whole suite, and tests/e2e/ talks to a real LLM gateway, so whether a commit is allowed depended on how fast that gateway happened to be. During the issue 14 work it blocked two commits on two different cases; both passed when rerun alone, and the suite went from 165s to 336s that hour. The wasted minutes are not the real cost. Retrying on red teaches you to read "test failed" as "gateway was slow", and a genuinely flaky bug then gets retried away too. An alarm that cries wolf stops being an alarm. test_thinking_live.py already carried the slow marker; the other three files now match it, and the release checklist gains an explicit `pytest -m slow` step so they still run where a human is watching -- without that step this change would just delete the coverage. Also raises test_flat_legacy_keys_assemble's LLM_TIMEOUT from 120 to 300, matching .env. At 120 the case allowed half of what production allows, on a gateway that needs the full 300 -- it measured 116s in a solo run. The assertion is that the flat key name parses into SourceConfig.timeout_s; the value itself was never under test.
This commit is contained in:
@@ -19,9 +19,15 @@ from polygateway import GatewayClient
|
||||
_ENV = {k: v for k, v in {**dotenv_values(".env"), **os.environ}.items() if v is not None}
|
||||
_HAS_SOURCE = any(k.split("__")[0] == "LLM" and k.endswith("__API_KEY") for k in _ENV)
|
||||
|
||||
pytestmark = pytest.mark.skipif(
|
||||
not _HAS_SOURCE, reason="需真实网关凭据: 在 .env 配置 LLM__{PROVIDER}__1__*(M1 验收前必须真跑)"
|
||||
)
|
||||
# 真实网关调用: 与 test_thinking_live.py 同待遇标 slow(pytest addopts 默认排除,
|
||||
# 显式 `pytest -m slow` 运行)。理由见 test_compat_projects.py 同处注释。
|
||||
pytestmark = [
|
||||
pytest.mark.slow,
|
||||
pytest.mark.skipif(
|
||||
not _HAS_SOURCE,
|
||||
reason="需真实网关凭据: 在 .env 配置 LLM__{PROVIDER}__1__*(M1 验收前必须真跑)",
|
||||
),
|
||||
]
|
||||
|
||||
_OUT_DIR = Path("tests/outputs/e2e")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user