完成大量美化
This commit is contained in:
125
test_worldbook_pagination.py
Normal file
125
test_worldbook_pagination.py
Normal 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)
|
||||
Reference in New Issue
Block a user