Files
vrsub/tests/test_api.py
T
cat-shark 4746e0363f feat: VRSub 单体应用(WOV 单机版)初始提交
为视频生成 VR 双眼字幕的单体实现:FastAPI 后端、调度器与全部节点
(提音/转写/翻译/ASS/抽帧/OCR/LLM 过滤)在单进程内运行。

- 节点协议(wov_sdk 数据模型)与分布式版保持一致,预留回退桥梁
- 工作流即数据:DAG 存于 workflows/*.json,模型/链路改动只改数据
- 调度器:拓扑顺序执行、断点续跑(产物重建)、任务暂停/继续
- 抽帧按帧间隔(select 按帧号精确取帧),VLM OCR 与 LLM 过滤使用
  自适应线程池弹性并发,并打印数据处理速度进度日志
- 100% 行覆盖率(pytest --cov-fail-under=100)
2026-08-16 23:58:25 +08:00

35 lines
1.3 KiB
Python

"""应用级 API 冒烟测试。
使用 FastAPI TestClient 验证健康检查、静态页面与 OpenAPI 文档可访问。
节点注册/实例管理 API 已随单体化移除,不再有对应路由。
"""
from fastapi.testclient import TestClient
from wov_app.main import app
def test_health_and_static() -> None:
"""验证静态首页、OpenAPI 文档与健康探针均可访问。"""
with TestClient(app) as client:
root = client.get("/", follow_redirects=False)
assert root.status_code == 200
assert "VRSub 字幕生成" in root.text
docs = client.get("/docs")
assert docs.status_code == 200
response = client.get("/health")
assert response.status_code == 200
assert response.json()["service"] == "wov-api"
assert response.json()["mode"] == "monolith"
def test_node_admin_routes_removed() -> None:
"""验证节点注册与实例管理路由在单体版中已移除(404/405)。"""
with TestClient(app) as client:
# GET 落到静态文件挂载后返回 404;POST 对静态挂载返回 405。
assert client.post("/api/admin/nodes", json={}).status_code == 405
assert client.get("/api/admin/nodes").status_code == 404
assert client.get("/api/admin/node-instances").status_code == 404