Files
aitsc/test_complete_flow.py

102 lines
3.8 KiB
Python
Raw Normal View History

2025-08-29 00:34:40 +08:00
# -*- coding: utf-8 -*-
"""
完整流程测试模板选择 -> 生成提示词 -> 收藏
"""
from src.flask_prompt_master import create_app, db
from src.flask_prompt_master.models.models import PromptTemplate, Prompt
from src.flask_prompt_master.models.favorites import Favorite
from src.flask_prompt_master.services.favorite_service import FavoriteService
from datetime import datetime
def test_complete_flow():
"""测试完整流程"""
app = create_app()
with app.app_context():
print("=" * 60)
print("完整流程测试:模板选择 -> 生成提示词 -> 收藏")
print("=" * 60)
try:
# 1. 检查模板
templates = PromptTemplate.query.all()
print(f"📋 可用模板数: {len(templates)}")
if not templates:
print("❌ 没有可用模板")
return
# 2. 模拟选择第一个模板
selected_template = templates[0]
print(f"✅ 选择模板: {selected_template.name} (ID: {selected_template.id})")
# 3. 模拟输入文本
input_text = "写一个关于天气的文章"
print(f"📝 输入文本: {input_text}")
# 4. 模拟生成提示词
generated_text = "请撰写一篇关于天气的综合性文章..."
print(f"🎯 生成提示词: {generated_text[:50]}...")
# 5. 模拟收藏操作
print("\n💾 测试收藏功能...")
# 创建模拟请求对象
class MockRequest:
def __init__(self, remote_addr):
self.remote_addr = remote_addr
mock_request = MockRequest('192.168.31.136')
# 测试添加收藏
favorite_data = {
'template_id': selected_template.id,
'original_text': input_text,
'generated_prompt': generated_text,
'category': selected_template.category,
'notes': '测试收藏'
}
# 直接创建收藏记录
favorite = Favorite(
user_id=mock_request.remote_addr,
template_id=favorite_data['template_id'],
original_text=favorite_data['original_text'],
generated_prompt=favorite_data['generated_prompt'],
category=favorite_data['category'],
notes=favorite_data['notes']
)
db.session.add(favorite)
db.session.commit()
print(f"✅ 收藏成功收藏ID: {favorite.id}")
# 6. 验证收藏
saved_favorite = Favorite.query.get(favorite.id)
if saved_favorite:
print(f"✅ 验证收藏成功:")
print(f" 用户ID: {saved_favorite.user_id}")
print(f" 模板ID: {saved_favorite.template_id}")
print(f" 原始文本: {saved_favorite.original_text[:30]}...")
print(f" 分类: {saved_favorite.category}")
print(f" 备注: {saved_favorite.notes}")
else:
print("❌ 收藏验证失败")
# 7. 测试查询收藏
user_favorites = Favorite.query.filter_by(user_id=mock_request.remote_addr).all()
print(f"\n📊 用户收藏统计: {len(user_favorites)} 个收藏")
print("\n" + "=" * 60)
print("✅ 完整流程测试成功!")
print("=" * 60)
except Exception as e:
print(f"❌ 测试过程中出现错误: {str(e)}")
db.session.rollback()
raise
if __name__ == '__main__':
test_complete_flow()