test: conn_limiter 差异覆盖与导入清理
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,18 @@ def test_release_unheld_key_is_safe_noop():
|
||||
assert lim.try_acquire("t", "1.1.1.1") # 状态仍可用
|
||||
|
||||
|
||||
def test_per_call_limit_overrides_constructor():
|
||||
# 按次 cap 覆盖构造值(chat.py 传租户配置 limit 必须真生效,封住
|
||||
# "try_acquire 静默忽略 limit 参数"的盲区); 不传 limit 的键仍受构造值管束
|
||||
lim = ConnectionLimiter(limit=2)
|
||||
for _ in range(5):
|
||||
assert lim.try_acquire("t", "1.1.1.1", limit=5) # 第 3-5 个也能进
|
||||
assert not lim.try_acquire("t", "1.1.1.1", limit=5) # 第 6 个才拒绝
|
||||
assert lim.try_acquire("t", "2.2.2.2") # 不传 limit 的键: 第 1、2 个进
|
||||
assert lim.try_acquire("t", "2.2.2.2")
|
||||
assert not lim.try_acquire("t", "2.2.2.2") # 仍按构造值 2 拒第 3 个
|
||||
|
||||
|
||||
# ---- 接入: /ws/chat 握手期限流 ----------------------------------------------
|
||||
# TestClient 的 WS scope client 恒为 ("testclient", 50000) 且测试不带 XFF,
|
||||
# 故所有连接同落 ip="testclient";app_client 默认 jiancai 域——同租户同 IP,
|
||||
|
||||
Reference in New Issue
Block a user