refactor: migrate agent task query ownership

This commit is contained in:
jxxghp
2026-08-23 00:37:03 +08:00
parent ab51b5116a
commit 2031f3c420
6 changed files with 92 additions and 32 deletions
+2 -12
View File
@@ -3,10 +3,10 @@
"by_kind": {
"async_db_query": 49,
"async_db_update": 0,
"db_query": 74,
"db_query": 72,
"db_update": 0
},
"count": 123,
"count": 121,
"methods": [
{
"decorator": "async_db_query",
@@ -28,16 +28,6 @@
"file": "app/db/models/agentchat.py",
"method": "AgentChat.list_by_page"
},
{
"decorator": "db_query",
"file": "app/db/models/agenttask.py",
"method": "AgentTask.get_for_user"
},
{
"decorator": "db_query",
"file": "app/db/models/agenttask.py",
"method": "AgentTask.list_for_user"
},
{
"decorator": "db_query",
"file": "app/db/models/agenttaskrun.py",
@@ -13,6 +13,7 @@ from app.db.models.agenttask import AgentTask
from app.db.models.downloadfailure import DownloadFailure
from app.db.models.message import Message
from app.db.models.plugindata import PluginData
from app.db.oper.agenttask import AgentTaskOper
@pytest.fixture(autouse=True)
@@ -307,6 +308,23 @@ def test_agenttask_get_for_user_enforces_ownership(db):
assert AgentTask.get_for_user(db.session, task_id, user_id="bob") is None
def test_agenttask_oper_reads_with_explicit_session(db, monkeypatch):
"""AgentTaskOper 的宿主查询使用调用方 Session,不再经过旧事务兼容执行器。"""
task_id = AgentTask.add_task(db.session, **_task("canonical", user_id="alice"))
monkeypatch.setattr(
"app.db.oper.agenttask.run_sync_transaction",
lambda _query: pytest.fail("显式 Session 查询不应创建兼容事务"),
)
oper = AgentTaskOper(db.session)
task = oper.get(task_id, user_id="alice")
tasks = oper.list(user_id="alice", enabled=True)
assert task is not None and task.id == task_id
assert [item.id for item in tasks] == [task_id]
def test_agenttask_list_for_user_filters_by_owner_and_enabled(db):
"""
列表按归属与启用状态收窄,并按创建时间倒序。