import pytest from django.urls import reverse from accounts.models import InviteCode, User from content.models import ContentItem @pytest.mark.django_db def test_admin_login_使用自定义运营登录页(client): response = client.get(reverse("admin:login")) assert response.status_code == 200 content = response.content.decode() assert "管理数学人生宇宙" in content assert "进入运营后台" in content @pytest.mark.django_db def test_admin_index_普通用户不能访问(client): user = User.objects.create_user( username="normal_user", password="StrongPass_2026", nickname="普通用户", ) client.force_login(user) response = client.get(reverse("admin:index")) assert response.status_code == 302 assert reverse("admin:login") in response.url @pytest.mark.django_db def test_admin_index_展示运营指标与中文模块(client): admin_user = User.objects.create_superuser( username="dashboard_admin", password="StrongPass_2026", nickname="后台管理员", ) InviteCode.objects.create(code="ADMIN-TEST", max_uses=10) ContentItem.objects.create( slug="admin-content", title="后台测试内容", kind=ContentItem.Kind.KNOWLEDGE, is_published=True, ) client.force_login(admin_user) response = client.get(reverse("admin:index")) assert response.status_code == 200 content = response.content.decode() assert "今天从哪里开始?" in content assert "总用户" in content assert "用户与权限" in content assert "用户账号" in content assert "数学人生与 MathBTI" in content assert "比赛运营" in content assert "视频与探索内容" in content assert "视频与内容" in content assert "生成邀请码" in content @pytest.mark.django_db def test_home_包含按员工身份控制的后台入口(client): response = client.get("/") assert response.status_code == 200 content = response.content.decode() assert 'id="admin-entry"' in content assert 'href="/admin/"' in content