Files
Hulumath-Web/backend/progression/test_services.py
T
Jacky 1f98f7152d
CI / test (push) Failing after 1m31s
v0.2 Preview: Construction Plan.
2026-08-08 21:25:27 +08:00

33 lines
1.2 KiB
Python

import pytest
from accounts.models import User
from math_life.models import MathIdentity
from progression.models import Card, UserAbility, UserCard, UserPet
from progression.services import initialize_math_identity
@pytest.mark.django_db
def test_initialize_math_identity_重复调用保持精灵能力和人物卡唯一():
user = User.objects.create_user(
username="identity_user",
password="StrongPass_2026",
nickname="身份用户",
)
identity = MathIdentity.objects.create(
code="1000",
name="定理工匠",
clan="信仰者",
mathematician="高斯",
description="严谨推导与纯粹热爱。",
portrait="/static/img/mathematicians/1000.png",
)
initialize_math_identity(user, identity)
initialize_math_identity(user, identity)
assert UserPet.objects.filter(user=user).count() == 1
assert UserAbility.objects.filter(user=user).count() == len(UserAbility.Dimension.choices)
assert Card.objects.filter(slug="mathbti-1000").count() == 1
assert UserCard.objects.filter(user=user, card__slug="mathbti-1000").count() == 1
assert set(UserAbility.objects.filter(user=user).values_list("level", flat=True)) == {0}