Files
ai-ticket-platform/backend/apps/accounts/tests/test_bootstrap_governance.py
2026-07-01 14:29:24 +08:00

40 lines
1.7 KiB
Python

from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group, Permission
from django.core.management import call_command
from apps.accounts.models import MenuItem, UserGroup
def test_bootstrap_governance_seeds_admin_roles_groups_permissions_and_menus(db, settings):
settings.DJANGO_SUPERUSER_USERNAME = "admin"
settings.DJANGO_SUPERUSER_PASSWORD = "admin12345"
settings.DJANGO_SUPERUSER_EMAIL = "admin@example.com"
call_command("bootstrap_governance")
call_command("bootstrap_governance")
user = get_user_model().objects.get(username="admin")
assert user.is_superuser is True
assert user.check_password("admin12345")
assert Group.objects.filter(name="系统管理员").exists()
assert Permission.objects.filter(codename="system.user.manage").exists()
assert UserGroup.objects.filter(code="default").exists()
assert MenuItem.objects.filter(code="system.users", title="用户管理").exists()
assert MenuItem.objects.filter(code="system.roles", permission_code="system.role.view").exists()
def test_bootstrap_governance_migrates_legacy_english_roles(db, settings):
legacy_group = Group.objects.create(name="Support Engineer")
user = get_user_model().objects.create_user(username="support", password="password")
user.groups.add(legacy_group)
settings.DJANGO_SUPERUSER_USERNAME = "admin"
settings.DJANGO_SUPERUSER_PASSWORD = "admin12345"
settings.DJANGO_SUPERUSER_EMAIL = "admin@example.com"
call_command("bootstrap_governance")
assert not Group.objects.filter(name="Support Engineer").exists()
support_role = Group.objects.get(name="技术支持")
assert support_role.user_set.filter(username="support").exists()