mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 09:50:21 +08:00
feat: 添加视频生成功能增强和多维度计费系统适配
- 视频生成: 增强 video_handler,重构 task_poller,新增 telemetry - 计费系统: 适配新的 signature 格式,支持 video 任务类型回退 - 数据库迁移: 添加 api_family/endpoint_kind 字段和 video_formats
This commit is contained in:
45
tests/services/test_video_task_poller.py
Normal file
45
tests/services/test_video_task_poller.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import AsyncMock, MagicMock
|
||||
|
||||
import pytest
|
||||
|
||||
from src.core.api_format.conversion.internal_video import InternalVideoPollResult, VideoStatus
|
||||
from src.services.video.task_poller import VideoTaskPollerService
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_poll_task_status_routes_gemini_video_to_gemini(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
poller = VideoTaskPollerService()
|
||||
|
||||
task = 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")
|
||||
|
||||
monkeypatch.setattr(poller, "_get_endpoint", lambda _db, _id: endpoint)
|
||||
monkeypatch.setattr(poller, "_get_key", lambda _db, _id: key)
|
||||
monkeypatch.setattr(
|
||||
"src.services.video.task_poller.crypto_service.decrypt", lambda _v: "decrypted"
|
||||
)
|
||||
|
||||
auth_info = SimpleNamespace(auth_header="authorization", auth_value="Bearer x")
|
||||
monkeypatch.setattr(
|
||||
"src.services.video.task_poller.get_provider_auth",
|
||||
AsyncMock(return_value=auth_info),
|
||||
)
|
||||
|
||||
poll_gemini = AsyncMock(return_value=InternalVideoPollResult(status=VideoStatus.PROCESSING))
|
||||
poll_openai = AsyncMock(return_value=InternalVideoPollResult(status=VideoStatus.PROCESSING))
|
||||
monkeypatch.setattr(poller, "_poll_gemini", poll_gemini)
|
||||
monkeypatch.setattr(poller, "_poll_openai", poll_openai)
|
||||
|
||||
result = await poller._poll_task_status(MagicMock(), task)
|
||||
assert result.status == VideoStatus.PROCESSING
|
||||
assert poll_gemini.await_count == 1
|
||||
assert poll_openai.await_count == 0
|
||||
Reference in New Issue
Block a user