72 lines
2.1 KiB
Python
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
|