"""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): import inspect from app.api.routes import scripts_ai src = inspect.getsource(scripts_ai) assert "PointsService" not in src assert "points_gate" not in src assert "calculate_points_cost" not in src