43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
管理端鉴权测试。POST /api/admin 登录,GET /api/admin 鉴权检查。
|
||
"""
|
||
import pytest
|
||
import requests
|
||
|
||
from util import admin_headers
|
||
|
||
|
||
def test_admin_login(base_url):
|
||
"""POST /api/admin 登录成功"""
|
||
r = requests.post(
|
||
f"{base_url}/api/admin",
|
||
json={"username": "admin", "password": "admin123"},
|
||
timeout=10,
|
||
)
|
||
assert r.status_code == 200
|
||
data = r.json()
|
||
assert data.get("success") is True
|
||
assert "token" in data
|
||
assert "user" in data
|
||
|
||
|
||
def test_admin_check_with_token(admin_token, base_url):
|
||
"""GET /api/admin 带 token 鉴权通过"""
|
||
if not admin_token:
|
||
pytest.skip("admin 登录失败,跳过鉴权测试")
|
||
r = requests.get(
|
||
f"{base_url}/api/admin",
|
||
headers=admin_headers(admin_token),
|
||
timeout=10,
|
||
)
|
||
assert r.status_code == 200
|
||
data = r.json()
|
||
assert data.get("success") is True
|
||
|
||
|
||
def test_admin_check_without_token(base_url):
|
||
"""GET /api/admin 无 token 返回 401"""
|
||
r = requests.get(f"{base_url}/api/admin", timeout=10)
|
||
assert r.status_code == 401
|