40 lines
1.7 KiB
Python
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()
|