From a122f7afba1787e35ef347208470088b87844f9c Mon Sep 17 00:00:00 2001 From: zhangshy <994452054@qq.com> Date: Fri, 11 Sep 2026 16:40:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A3=8E=E6=8E=A7=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E8=AE=B0=E5=BD=95=E6=9F=A5=E8=AF=A2=E4=B8=8E=E5=87=86?= =?UTF-8?q?=E5=A4=87=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/service/risk_query_service.py | 6 +++++- tests/unit/service/test_risk_query_service.py | 15 +++++++++++++++ tools/grant_risk_permissions.py | 7 ++++++- tools/publish_risk_agent_config.py | 8 ++++++-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/service/risk_query_service.py b/app/service/risk_query_service.py index 114f447..9e641e2 100644 --- a/app/service/risk_query_service.py +++ b/app/service/risk_query_service.py @@ -146,7 +146,11 @@ class RiskQueryService: page=page_request, ) elif source == "alerts": - alert_page = await repository.list_alerts(keyword=query.keyword, page=page_request) + alert_page = await repository.list_alerts( + keyword=query.keyword, + open_only=False, + page=page_request, + ) return self._page(alert_page, binding=binding) elif source == "notifications": page = await repository.list_notifications( diff --git a/tests/unit/service/test_risk_query_service.py b/tests/unit/service/test_risk_query_service.py index f2df772..d49b613 100644 --- a/tests/unit/service/test_risk_query_service.py +++ b/tests/unit/service/test_risk_query_service.py @@ -73,6 +73,10 @@ class RecordingRepository(FakeRepository): self.calls.append(("notifications", kwargs)) return self.page + async def list_alerts(self, **kwargs) -> FundPage: + self.calls.append(("alerts", kwargs)) + return self.page + def context(**updates) -> RequestContext: values = { @@ -205,3 +209,14 @@ async def test_evidence_time_filters_are_interpreted_as_local_time(source: str) assert repository.calls[0][0] == source assert repository.calls[0][1]["start_time"] == datetime(2026, 9, 10, 4, 0) assert repository.calls[0][1]["end_time"] == datetime(2026, 9, 10, 5, 0) + + +@pytest.mark.asyncio +async def test_evidence_alert_records_include_closed_alerts() -> None: + repository = RecordingRepository() + service = RiskQueryService(None, repository=repository) + + await service.list_evidence(context(), "alerts", RiskEvidencePageQuery()) + + assert repository.calls[0][0] == "alerts" + assert repository.calls[0][1]["open_only"] is False diff --git a/tools/grant_risk_permissions.py b/tools/grant_risk_permissions.py index 63fd123..043d21a 100644 --- a/tools/grant_risk_permissions.py +++ b/tools/grant_risk_permissions.py @@ -36,10 +36,15 @@ import asyncio import datetime as dt import sys +from pathlib import Path import asyncmy -from app.core.config import get_settings +PROJECT_ROOT = Path(__file__).resolve().parents[1] +if str(PROJECT_ROOT) not in sys.path: + sys.path.insert(0, str(PROJECT_ROOT)) + +from app.core.config import get_settings # noqa: E402 # (permission_code, resource, action, 授予的角色) PERMISSIONS: tuple[tuple[str, str, str, tuple[str, ...]], ...] = ( diff --git a/tools/publish_risk_agent_config.py b/tools/publish_risk_agent_config.py index c7873bb..2d2c649 100644 --- a/tools/publish_risk_agent_config.py +++ b/tools/publish_risk_agent_config.py @@ -31,8 +31,12 @@ import asyncmy import httpx import jwt -from app.core.config import get_settings -from app.main import create_app +PROJECT_ROOT = Path(__file__).resolve().parents[1] +if str(PROJECT_ROOT) not in sys.path: + sys.path.insert(0, str(PROJECT_ROOT)) + +from app.core.config import get_settings # noqa: E402 +from app.main import create_app # noqa: E402 ADMIN = "9003" AGENT_TYPE = "risk"