From 6a2e3c2d269f0fbef2a38beeb858f3abfe8f2d00 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Fri, 29 May 2026 03:59:57 -0700 Subject: [PATCH] fix(gateway): guard adapter-trust check against bare GatewayRunner in tests _adapter_enforces_own_access_policy accessed self.adapters directly, but several auth tests build a bare GatewayRunner via object.__new__ without setting .adapters (pitfalls.md #17). Read it defensively with getattr so a missing/empty adapter map means "no adapter owns the policy" instead of raising AttributeError. Fixes 4 tests: test_feishu_bot_auth_bypass, test_discord_bot_auth_bypass (x2), test_signal::test_signal_in_allowlist_maps. --- gateway/run.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gateway/run.py b/gateway/run.py index 584e72a5e..20d0c2a4e 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -6556,7 +6556,13 @@ class GatewayRunner: """ if not platform: return False - adapter = self.adapters.get(platform) + # Some test helpers build a bare GatewayRunner via object.__new__ and + # never set ``adapters``; treat a missing/empty map as "no adapter" + # rather than raising (see pitfalls.md #17). + adapters = getattr(self, "adapters", None) + if not adapters: + return False + adapter = adapters.get(platform) if adapter is None: return False return bool(getattr(adapter, "enforces_own_access_policy", False))