完成大量美化

This commit is contained in:
2026-05-01 15:44:14 +08:00
parent 6b65b24b0f
commit f0e7e75ffb
36 changed files with 4393 additions and 1506 deletions

View File

@@ -0,0 +1,125 @@
"""
测试世界书分页功能
"""
import sys
import os
from pathlib import Path
import json
# 添加backend目录到Python路径
backend_dir = Path(__file__).parent / "backend"
sys.path.insert(0, str(backend_dir))
# 直接导入需要的模块避免导入整个services包
from core.config import settings
from services.worldbook_service import WorldBookService
def test_pagination():
"""测试世界书条目分页功能"""
# 测试数据:世界书名称
test_worldbook_name = "测试分页世界书"
print("=" * 60)
print("测试世界书分页功能")
print("=" * 60)
try:
# 1. 创建测试世界书
print("\n1. 创建测试世界书...")
try:
worldbook = WorldBookService.create_worldbook(test_worldbook_name, "用于测试分页功能")
print(f" ✓ 世界书创建成功: {worldbook['name']}")
except ValueError as e:
if "already exists" in str(e):
print(f" 世界书已存在,跳过创建")
else:
raise
# 2. 添加测试条目创建30个条目
print("\n2. 添加测试条目...")
num_entries = 30
for i in range(num_entries):
entry_data = {
"key": [f"关键词{i}"],
"content": f"这是第{i+1}个测试条目的内容",
"comment": f"测试条目 {i+1}",
"order": i + 1
}
WorldBookService.create_entry(test_worldbook_name, entry_data)
print(f" ✓ 成功添加 {num_entries} 个条目")
# 3. 测试分页功能
print("\n3. 测试分页功能...")
# 测试第1页每页10条
print("\n 测试第1页每页10条:")
result = WorldBookService.list_entries(test_worldbook_name, page=1, page_size=10)
print(f" - 总条目数: {result['total']}")
print(f" - 当前页: {result['page']}")
print(f" - 每页数量: {result['page_size']}")
print(f" - 总页数: {result['total_pages']}")
print(f" - 返回条目数: {len(result['entries'])}")
assert result['total'] == num_entries, f"总条目数错误: {result['total']} != {num_entries}"
assert result['page'] == 1, f"页码错误: {result['page']} != 1"
assert result['page_size'] == 10, f"每页数量错误: {result['page_size']} != 10"
assert result['total_pages'] == 3, f"总页数错误: {result['total_pages']} != 3"
assert len(result['entries']) == 10, f"返回条目数错误: {len(result['entries'])} != 10"
print(" ✓ 第1页测试通过")
# 测试第2页
print("\n 测试第2页每页10条:")
result = WorldBookService.list_entries(test_worldbook_name, page=2, page_size=10)
print(f" - 当前页: {result['page']}")
print(f" - 返回条目数: {len(result['entries'])}")
assert result['page'] == 2, f"页码错误: {result['page']} != 2"
assert len(result['entries']) == 10, f"返回条目数错误: {len(result['entries'])} != 10"
print(" ✓ 第2页测试通过")
# 测试第3页最后一页应该只有10条
print("\n 测试第3页每页10条:")
result = WorldBookService.list_entries(test_worldbook_name, page=3, page_size=10)
print(f" - 当前页: {result['page']}")
print(f" - 返回条目数: {len(result['entries'])}")
assert result['page'] == 3, f"页码错误: {result['page']} != 3"
assert len(result['entries']) == 10, f"返回条目数错误: {len(result['entries'])} != 10"
print(" ✓ 第3页测试通过")
# 测试不同的每页数量
print("\n 测试每页20条:")
result = WorldBookService.list_entries(test_worldbook_name, page=1, page_size=20)
print(f" - 总页数: {result['total_pages']}")
print(f" - 返回条目数: {len(result['entries'])}")
assert result['page_size'] == 20, f"每页数量错误: {result['page_size']} != 20"
assert result['total_pages'] == 2, f"总页数错误: {result['total_pages']} != 2"
assert len(result['entries']) == 20, f"返回条目数错误: {len(result['entries'])} != 20"
print(" ✓ 每页20条测试通过")
print("\n" + "=" * 60)
print("✅ 所有分页测试通过!")
print("=" * 60)
# 4. 清理测试数据
print("\n4. 清理测试数据...")
WorldBookService.delete_worldbook(test_worldbook_name)
print(" ✓ 测试世界书已删除")
return True
except Exception as e:
print(f"\n❌ 测试失败: {str(e)}")
import traceback
traceback.print_exc()
# 尝试清理测试数据
try:
WorldBookService.delete_worldbook(test_worldbook_name)
print(" ✓ 测试数据已清理")
except:
pass
return False
if __name__ == "__main__":
success = test_pagination()
sys.exit(0 if success else 1)