style: run the formatter over the issue 14 changes

ruff format only; no semantic change.
This commit is contained in:
2026-08-20 00:44:21 -04:00
parent d9ceaecf20
commit 5a025b6e5d
5 changed files with 38 additions and 20 deletions
+1 -3
View File
@@ -327,9 +327,7 @@ class GatewaySettings:
backpressure=_load_backpressure(scope_u, env), backpressure=_load_backpressure(scope_u, env),
selector=_load_choice(env, f"{scope_u}__SELECTOR", _SELECTORS, "health_aware"), selector=_load_choice(env, f"{scope_u}__SELECTOR", _SELECTORS, "health_aware"),
quota_full=_load_choice(env, f"{scope_u}__QUOTA_FULL", _QUOTA_FULL, "wait"), quota_full=_load_choice(env, f"{scope_u}__QUOTA_FULL", _QUOTA_FULL, "wait"),
circuit_open=_load_choice( circuit_open=_load_choice(env, f"{scope_u}__CIRCUIT_OPEN", _CIRCUIT_OPEN, "fail_fast"),
env, f"{scope_u}__CIRCUIT_OPEN", _CIRCUIT_OPEN, "fail_fast"
),
**_load_pgw(env), **_load_pgw(env),
) )
+1 -3
View File
@@ -261,9 +261,7 @@ class SourceAdmission:
) )
nap = self._nap(hint, clock) nap = self._nap(hint, clock)
if hint > 0: if hint > 0:
logger.info( logger.info("熔断开路等待 {:.1f}s 后重试(scope={}, 原因={})", nap, self._scope, reasons)
"熔断开路等待 {:.1f}s 后重试(scope={}, 原因={})", nap, self._scope, reasons
)
await self._sleep(nap) await self._sleep(nap)
def _nap(self, hint: float, clock: StallClock) -> float: def _nap(self, hint: float, clock: StallClock) -> float:
-1
View File
@@ -291,7 +291,6 @@ class TestRetryAfter:
await _open_gate(gate, "s1") # s1 开路;s2 健康 await _open_gate(gate, "s1") # s1 开路;s2 健康
assert await gate.retry_after_s(("s1", "s2")) == 0.0 assert await gate.retry_after_s(("s1", "s2")) == 0.0
async def test_half_open_rejection_reports_no_certain_wait(self, gate_factory, clock): async def test_half_open_rejection_reports_no_certain_wait(self, gate_factory, clock):
"""探针在途时被拒 → 0.0(issue #14): 探针随时可能出结果,不存在确定时刻。 """探针在途时被拒 → 0.0(issue #14): 探针随时可能出结果,不存在确定时刻。
+35 -10
View File
@@ -628,8 +628,12 @@ class TestCircuitOpenPolicy:
clock = FakeClock() clock = FakeClock()
src = make_source() src = make_source()
mw = _mw( mw = _mw(
[src], self._free_limiter(clock, src), [], clock=clock, [src],
sleep=BoundedSleep(), gate=await self._opened_gate(clock), self._free_limiter(clock, src),
[],
clock=clock,
sleep=BoundedSleep(),
gate=await self._opened_gate(clock),
) )
with pytest.raises(CircuitOpenError) as ei: with pytest.raises(CircuitOpenError) as ei:
await mw(_REQ) await mw(_REQ)
@@ -650,8 +654,13 @@ class TestCircuitOpenPolicy:
sleep._side_effect = advance sleep._side_effect = advance
mw = _mw( mw = _mw(
[src], self._free_limiter(clock, src), [_ok()], clock=clock, [src],
sleep=sleep, gate=await self._opened_gate(clock), circuit_open="wait", self._free_limiter(clock, src),
[_ok()],
clock=clock,
sleep=sleep,
gate=await self._opened_gate(clock),
circuit_open="wait",
) )
resp = await mw(_REQ) resp = await mw(_REQ)
assert resp.content == "ok" assert resp.content == "ok"
@@ -671,8 +680,14 @@ class TestCircuitOpenPolicy:
sleep._side_effect = advance sleep._side_effect = advance
mw = _mw( mw = _mw(
[src], self._free_limiter(clock, src), [_ok()], clock=clock, sleep=sleep, [src],
gate=await self._opened_gate(clock), quota_full="fail_fast", circuit_open="wait", self._free_limiter(clock, src),
[_ok()],
clock=clock,
sleep=sleep,
gate=await self._opened_gate(clock),
quota_full="fail_fast",
circuit_open="wait",
) )
assert (await mw(_REQ)).content == "ok" assert (await mw(_REQ)).content == "ok"
@@ -694,8 +709,13 @@ class TestCircuitOpenPolicy:
sleep._side_effect = advance sleep._side_effect = advance
mw = _mw( mw = _mw(
[src], self._free_limiter(clock, src), [], clock=clock, sleep=sleep, [src],
gate=await self._opened_gate(clock, long_cooldown), circuit_open="wait", self._free_limiter(clock, src),
[],
clock=clock,
sleep=sleep,
gate=await self._opened_gate(clock, long_cooldown),
circuit_open="wait",
) )
with pytest.raises(AllSourcesExhausted) as ei: with pytest.raises(AllSourcesExhausted) as ei:
await mw(_REQ) await mw(_REQ)
@@ -708,8 +728,13 @@ class TestCircuitOpenPolicy:
clock = FakeClock() clock = FakeClock()
src = make_source() src = make_source()
mw = _mw( mw = _mw(
[src], self._free_limiter(clock, src), [], clock=clock, [src],
sleep=asyncio.sleep, gate=await self._opened_gate(clock), circuit_open="wait", self._free_limiter(clock, src),
[],
clock=clock,
sleep=asyncio.sleep,
gate=await self._opened_gate(clock),
circuit_open="wait",
) )
task = asyncio.create_task(mw(_REQ)) task = asyncio.create_task(mw(_REQ))
await asyncio.sleep(0.03) await asyncio.sleep(0.03)
+1 -3
View File
@@ -177,9 +177,7 @@ class TestResilienceKeys:
"快速失败 → 长时间挂起"这个最危险的方向,不能强加给存量下游。 "快速失败 → 长时间挂起"这个最危险的方向,不能强加给存量下游。
""" """
assert GatewaySettings.from_env("LLM", env=_env()).circuit_open == "fail_fast" assert GatewaySettings.from_env("LLM", env=_env()).circuit_open == "fail_fast"
waiting = GatewaySettings.from_env( waiting = GatewaySettings.from_env("LLM", env=_env(**{"LLM__CIRCUIT_OPEN": "wait"}))
"LLM", env=_env(**{"LLM__CIRCUIT_OPEN": "wait"})
)
assert waiting.circuit_open == "wait" assert waiting.circuit_open == "wait"
with pytest.raises(ValueError, match="CIRCUIT_OPEN"): with pytest.raises(ValueError, match="CIRCUIT_OPEN"):
GatewaySettings.from_env("LLM", env=_env(**{"LLM__CIRCUIT_OPEN": "block"})) GatewaySettings.from_env("LLM", env=_env(**{"LLM__CIRCUIT_OPEN": "block"}))