33 lines
1.2 KiB
Python
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}
|