Files
yingqing/core/backend/apps/accounts/tests.py
T
zycandClaude Fable 5 216a711291 后端生成闸+多项修复;前端全站更新;QA 审计与报告
后端:
- 新增 celery_health 生成前置闸——无 worker 在线时图片/视频生成入口
  一律 503,防"提交到 ARK 后无人轮询、结果悬空+额度冻结"的数据丢失
- 拼接导出:帧率跟随源众数、字幕逐句重映射、原声/BGM 混音修复
- 资金核算审计脚本 + genesis 账目回填 + 滞留预留清理命令
- 接入 yunqi provider 与豆包 TTS 模型(catalog/migrations/bootstrap 命令)

前端:全站页面更新(pipeline/library/products/projects/team/account 等),
新增共享 pager 分页组件

QA:刷新 function-audit 全量输出,新增 full-qa 报告
文档:BP 产品介绍资料、design/CLAUDE.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-15 10:06:15 +08:00

50 lines
2.0 KiB
Python

from decimal import Decimal
from django.conf import settings
from django.test import TestCase
from rest_framework.test import APIClient
from apps.accounts.models import Team, TeamMember, User
from apps.billing.models import CreditAccount, CreditLedger
class AuthApiTests(TestCase):
def test_register_creates_user_team_member_credit_account_and_token(self):
client = APIClient()
response = client.post(
"/api/auth/register/",
{
"username": "new-owner",
"password": "strong-password",
"email": "owner@example.com",
"team_name": "Launch Team",
},
format="json",
)
self.assertEqual(response.status_code, 201)
self.assertIn("token", response.data)
user = User.objects.get(username="new-owner")
team = Team.objects.get(name="Launch Team")
self.assertEqual(team.owner, user)
self.assertTrue(TeamMember.objects.filter(team=team, user=user, role=TeamMember.Role.OWNER).exists())
self.assertTrue(CreditAccount.objects.filter(team=team).exists())
def test_register_trial_grant_is_recorded_in_ledger(self):
"""开户赠送额度必须进流水:余额=赠送额,且有一条 balance_after=赠送额的 genesis 流水,账目从第一条起可对账。"""
client = APIClient()
client.post(
"/api/auth/register/",
{"username": "ledger-owner", "password": "strong-password", "team_name": "Ledger Team"},
format="json",
)
team = Team.objects.get(name="Ledger Team")
trial = Decimal(str(settings.DEFAULT_TRIAL_CREDITS))
account = CreditAccount.objects.get(team=team)
self.assertEqual(account.balance, trial)
genesis = CreditLedger.objects.filter(team=team, ledger_type=CreditLedger.Type.RECHARGE)
self.assertEqual(genesis.count(), 1)
self.assertEqual(genesis.first().amount, trial)
self.assertEqual(genesis.first().balance_after, trial) # 流水终点 == 账户余额,可对账