Files
Hulumath-Web/backend/common/test_admin.py
T
Jacky 43e425edbe
CI / test (push) Canceled after 4m2s
v 0.3 Preview: Update admin
2026-08-08 21:47:29 +08:00

72 lines
2.1 KiB
Python

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