mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
refactor(task): 拆分 TaskService 并重构任务生命周期
- 将 task 公共协议/上下文/异常/schema 下沉到 core,并迁移 polling 目录 - 新增 execute/submit/video 子模块,拆分同步执行、异步提交流程、错误处理与视频任务操作 - 收敛 TaskService 为门面编排,内部委派到 SyncTaskExecutionService、AsyncTaskSubmitService、VideoTaskOperationsService - 重构 main 生命周期管理:引入 LifecycleState,拆分启动与关闭流程 - 删除未使用的 TaskExecuteFacadeService 与 TaskSubmitFacadeService Closes #201 Co-authored-by: AAEE86 <ppk0227@hotmail.com>
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
from types import SimpleNamespace
|
||||
from types import SimpleNamespace
|
||||
from typing import cast
|
||||
from unittest.mock import AsyncMock, MagicMock
|
||||
|
||||
import pytest
|
||||
|
||||
from src.core.api_format.conversion.internal_video import InternalVideoPollResult, VideoStatus
|
||||
from src.services.task.impl.video_poller import VideoTaskPollerAdapter
|
||||
from src.models.database import VideoTask
|
||||
from src.services.task.video.poller_adapter import VideoTaskPollerAdapter
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -13,11 +15,14 @@ async def test_poll_task_status_routes_gemini_video_to_gemini(
|
||||
) -> None:
|
||||
adapter = VideoTaskPollerAdapter()
|
||||
|
||||
task = SimpleNamespace(
|
||||
endpoint_id="e1",
|
||||
key_id="k1",
|
||||
provider_api_format="gemini:video",
|
||||
external_task_id="operations/123",
|
||||
task = cast(
|
||||
VideoTask,
|
||||
SimpleNamespace(
|
||||
endpoint_id="e1",
|
||||
key_id="k1",
|
||||
provider_api_format="gemini:video",
|
||||
external_task_id="operations/123",
|
||||
),
|
||||
)
|
||||
endpoint = SimpleNamespace(id="e1", base_url="https://example.com", api_format="gemini:video")
|
||||
key = SimpleNamespace(id="k1", api_key="enc")
|
||||
@@ -25,12 +30,12 @@ async def test_poll_task_status_routes_gemini_video_to_gemini(
|
||||
monkeypatch.setattr(adapter, "_get_endpoint", lambda _db, _id: endpoint)
|
||||
monkeypatch.setattr(adapter, "_get_key", lambda _db, _id: key)
|
||||
monkeypatch.setattr(
|
||||
"src.services.task.impl.video_poller.crypto_service.decrypt", lambda _v: "decrypted"
|
||||
"src.services.task.video.poller_adapter.crypto_service.decrypt", lambda _v: "decrypted"
|
||||
)
|
||||
|
||||
auth_info = SimpleNamespace(auth_header="authorization", auth_value="Bearer x")
|
||||
monkeypatch.setattr(
|
||||
"src.services.task.impl.video_poller.get_provider_auth",
|
||||
"src.services.task.video.poller_adapter.get_provider_auth",
|
||||
AsyncMock(return_value=auth_info),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user