# -*- 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()