4a4b8f4a05
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 4s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m12s
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m20s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 3m36s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m27s
AI Code Review / AI Code Review (pull_request) Successful in 7m13s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 11m7s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 14m54s
CI/CD Pipeline / Build Production API Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Web Image (pull_request) Has been cancelled
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / CI Gate (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Style (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Security (pull_request) Has been cancelled
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Has been cancelled
- 编导prompt加粗强调严禁使用'很近',正确用词'最近' - _try_gen增加hard fix字符串替换:口播/分镜对白含'很近'自动替换 - 三级重试合格校验:口播含'很近'视为不合格触发重试 refactor(points): 移除ai_video/数字人/配音/改写/标题/封面/抖音解析扣点,仅保留声音克隆 - 删除5个路由的@points_gate装饰器(generation_preview/generation_cover/generation_tasks/scripts_ai/ai_avatar_render) - 删除tts.py/lipsync.py/narrative_service.py中ai_voice/ai_digital_human手动扣点+refund块 - points_rules.py精简POINTS_SCENES:仅保留voice_clone_train(0积分)和voice_clone_synth(1积分/分钟) - 删除DAILY_FREE_CLIP_LIMIT免费混剪额度逻辑,get_daily_usage返回unlimited占位 - points_gate.py删除ai_video特殊分支,未知/免费场景calculate_points_cost返回0直接放行 - points.py删除UNKNOWN_SCENE 400校验,任意scene可查 - 更新16个测试文件适配新规则:198个扣点相关单测全绿,viral_video 58个测试无回归
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
"""scripts_ai (抖音解析/改写/标题) — v1.6.2 起全部免费,不扣积分"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
class TestScriptsAiFree:
|
|
"""三个端点都已移除 @points_gate,不再扣点。"""
|
|
|
|
def test_all_scenes_return_zero_cost(self):
|
|
from packages.domain.points_rules import calculate_points_cost
|
|
|
|
for scene in ("douyin_extract", "ai_rewrite", "ai_title"):
|
|
assert calculate_points_cost(scene, is_member=False) == 0
|
|
assert calculate_points_cost(scene, is_member=True) == 0
|
|
|
|
def test_no_points_gate_decorators(self):
|
|
from app.api.routes import scripts_ai
|
|
|
|
for fn_name in ("extract_from_douyin", "ai_rewrite", "ai_generate_titles"):
|
|
fn = getattr(scripts_ai, fn_name)
|
|
assert not hasattr(fn, "__wrapped__"), f"{fn_name} still has @points_gate"
|
|
|
|
def test_module_no_points_imports(self):
|
|
from app.api.routes import scripts_ai
|
|
import inspect
|
|
|
|
src = inspect.getsource(scripts_ai)
|
|
assert "PointsService" not in src
|
|
assert "points_gate" not in src
|
|
assert "calculate_points_cost" not in src
|