feat(admin): 添加用户管理相关文件

添加用户管理视图、API和状态管理文件
This commit is contained in:
张翔
2026-03-28 14:37:29 +08:00
commit 08ea5fbe98
1643 changed files with 255646 additions and 0 deletions
@@ -0,0 +1,189 @@
"""
缓存功能测试 - TDD Red阶段
测试缓存功能的各种场景。
"""
import pytest
import allure
@allure.epic("测试基础设施")
@allure.feature("缓存功能测试 - TDD Red阶段")
class TestCache:
"""缓存功能测试类 - TDD Red阶段(期望失败)"""
@allure.title("测试缓存基本操作 - TDD Red阶段")
@allure.description("验证缓存的基本读写操作 - 期望失败(Red)")
@allure.severity(allure.severity_level.CRITICAL)
@pytest.mark.smoke
def test_cache_basic_operations(self) -> None:
"""
TDD Red阶段: 测试缓存基本操作
预期结果:
- 可以写入缓存
- 可以读取缓存
- 可以删除缓存
"""
try:
from core.cache import Cache
with allure.step("Step 1: 创建缓存实例"):
cache = Cache()
allure.attach("缓存实例创建成功", "步骤1", allure.attachment_type.TEXT)
with allure.step("Step 2: 写入缓存"):
cache.set("test_key", "test_value")
allure.attach("数据已写入缓存", "步骤2", allure.attachment_type.TEXT)
with allure.step("Step 3: 读取缓存"):
value = cache.get("test_key")
allure.attach(f"读取值: {value}", "步骤3", allure.attachment_type.TEXT)
if value == "test_value":
allure.attach("✅ 缓存读写正常", "测试结果", allure.attachment_type.TEXT)
assert True, "TDD Green阶段: 缓存基本操作正常"
else:
allure.attach(f"❌ 缓存值不匹配: {value}", "测试结果", allure.attachment_type.TEXT)
assert False, "缓存值不匹配"
except ImportError as e:
allure.attach(f"❌ Cache不存在 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,Cache尚未实现"
except Exception as e:
allure.attach(f"❌ 缓存操作失败 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,缓存功能尚未实现"
@allure.title("测试缓存过期 - TDD Red阶段")
@allure.description("验证缓存过期功能 - 期望失败(Red)")
@allure.severity(allure.severity_level.CRITICAL)
@pytest.mark.smoke
def test_cache_expiration(self) -> None:
"""
TDD Red阶段: 测试缓存过期
预期结果:
- 缓存数据在指定时间后过期
- 过期后无法读取
"""
try:
from core.cache import Cache
import time
with allure.step("Step 1: 创建缓存实例"):
cache = Cache()
with allure.step("Step 2: 写入带过期时间的缓存"):
cache.set("expire_key", "expire_value", ttl=1) # 1秒过期
allure.attach("数据已写入,TTL=1秒", "步骤2", allure.attachment_type.TEXT)
with allure.step("Step 3: 立即读取"):
value = cache.get("expire_key")
if value == "expire_value":
allure.attach("✅ 立即读取成功", "步骤3", allure.attachment_type.TEXT)
else:
allure.attach("❌ 立即读取失败", "步骤3", allure.attachment_type.TEXT)
assert False, "立即读取失败"
with allure.step("Step 4: 等待过期后读取"):
time.sleep(1.5) # 等待过期
value = cache.get("expire_key")
if value is None:
allure.attach("✅ 缓存过期正常", "测试结果", allure.attachment_type.TEXT)
assert True, "TDD Green阶段: 缓存过期功能正常"
else:
allure.attach(f"❌ 缓存未过期: {value}", "测试结果", allure.attachment_type.TEXT)
assert False, "缓存未正确过期"
except ImportError as e:
allure.attach(f"❌ Cache不存在 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,Cache尚未实现"
except Exception as e:
allure.attach(f"❌ 缓存过期失败 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,缓存过期功能尚未实现"
@allure.title("测试缓存清理 - TDD Red阶段")
@allure.description("验证缓存清理功能 - 期望失败(Red)")
@allure.severity(allure.severity_level.NORMAL)
@pytest.mark.regression
def test_cache_clear(self) -> None:
"""
TDD Red阶段: 测试缓存清理
预期结果:
- 可以清理所有缓存
- 清理后无法读取
"""
try:
from core.cache import Cache
with allure.step("Step 1: 创建缓存实例并写入数据"):
cache = Cache()
cache.set("key1", "value1")
cache.set("key2", "value2")
allure.attach("数据已写入", "步骤1", allure.attachment_type.TEXT)
with allure.step("Step 2: 清理缓存"):
cache.clear()
allure.attach("缓存已清理", "步骤2", allure.attachment_type.TEXT)
with allure.step("Step 3: 验证缓存已清理"):
value1 = cache.get("key1")
value2 = cache.get("key2")
if value1 is None and value2 is None:
allure.attach("✅ 缓存清理正常", "测试结果", allure.attachment_type.TEXT)
assert True, "TDD Green阶段: 缓存清理功能正常"
else:
allure.attach(f"❌ 缓存未清理: {value1}, {value2}", "测试结果", allure.attachment_type.TEXT)
assert False, "缓存未正确清理"
except ImportError as e:
allure.attach(f"❌ Cache不存在 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,Cache尚未实现"
except Exception as e:
allure.attach(f"❌ 缓存清理失败 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,缓存清理功能尚未实现"
@allure.title("测试缓存统计 - TDD Red阶段")
@allure.description("验证缓存统计功能 - 期望失败(Red)")
@allure.severity(allure.severity_level.NORMAL)
@pytest.mark.regression
def test_cache_stats(self) -> None:
"""
TDD Red阶段: 测试缓存统计
预期结果:
- 可以获取缓存统计信息
- 统计信息准确
"""
try:
from core.cache import Cache
with allure.step("Step 1: 创建缓存实例"):
cache = Cache()
with allure.step("Step 2: 写入数据"):
cache.set("key1", "value1")
cache.set("key2", "value2")
cache.set("key3", "value3")
with allure.step("Step 3: 获取统计信息"):
stats = cache.get_stats()
allure.attach(f"统计信息: {stats}", "步骤3", allure.attachment_type.TEXT)
if stats.get("size") == 3:
allure.attach("✅ 缓存统计正常", "测试结果", allure.attachment_type.TEXT)
assert True, "TDD Green阶段: 缓存统计功能正常"
else:
allure.attach(f"❌ 统计信息不正确: {stats}", "测试结果", allure.attachment_type.TEXT)
assert False, "缓存统计不正确"
except ImportError as e:
allure.attach(f"❌ Cache不存在 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,Cache尚未实现"
except Exception as e:
allure.attach(f"❌ 缓存统计失败 - 符合Red阶段预期: {str(e)}", "测试结果", allure.attachment_type.TEXT)
assert False, "TDD Red阶段: 期望测试失败,缓存统计功能尚未实现"