From 2cacff4a0f39c60bbbd61b1f2ef05547cd3ae9be Mon Sep 17 00:00:00 2001 From: steven_li Date: Tue, 16 Jun 2026 10:48:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(external-connector):=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E5=99=A8=E6=8F=90=E4=BE=9B=E8=80=85=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=AE=98=E6=96=B9=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将环境变量 CONNECTOR_PROVIDER 的默认值从 "fake" 改为 "official", 以便在没有明确指定提供者时使用官方的连接器实现。 --- external-connector/external_connector/main.py | 2 +- external-connector/tests/test_main.py | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 external-connector/tests/test_main.py diff --git a/external-connector/external_connector/main.py b/external-connector/external_connector/main.py index fb12654..3fca53b 100644 --- a/external-connector/external_connector/main.py +++ b/external-connector/external_connector/main.py @@ -17,7 +17,7 @@ from external_connector.state import SidecarStateStore def build_app(): home = Path(os.getenv("CONNECTOR_HOME", "/var/lib/external-connector")) store = SidecarStateStore(home / "state.json") - provider_name = os.getenv("CONNECTOR_PROVIDER", "fake") + provider_name = os.getenv("CONNECTOR_PROVIDER", "official") if provider_name == "official": provider = CompositeProvider([ _weixin_provider(store), diff --git a/external-connector/tests/test_main.py b/external-connector/tests/test_main.py new file mode 100644 index 0000000..b384af4 --- /dev/null +++ b/external-connector/tests/test_main.py @@ -0,0 +1,24 @@ +from __future__ import annotations + +from external_connector import main + + +def test_build_app_defaults_to_official_provider(monkeypatch, tmp_path) -> None: + monkeypatch.delenv("CONNECTOR_PROVIDER", raising=False) + monkeypatch.setenv("CONNECTOR_HOME", str(tmp_path)) + + app = main.build_app() + health = next(route.endpoint for route in app.routes if route.path == "/health")() + + assert health["providerId"] == "composite" + assert [provider["providerId"] for provider in health["providers"]] == ["weixin_ilink", "feishu_bot"] + + +def test_build_app_allows_explicit_fake_provider(monkeypatch, tmp_path) -> None: + monkeypatch.setenv("CONNECTOR_PROVIDER", "fake") + monkeypatch.setenv("CONNECTOR_HOME", str(tmp_path)) + + app = main.build_app() + health = next(route.endpoint for route in app.routes if route.path == "/health")() + + assert health["providerId"] == "fake"