#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试增强后的 parse_neo4j_process.py 程序 该脚本用于测试酒店职位数据Neo4j同步程序的增强功能,包括: - 职位名称和级别名称的同步 - 节点关系的创建 """ import os import sys import subprocess import time def test_enhanced_parse_neo4j_process(): """测试增强后的parse_neo4j_process.py程序""" # 获取脚本路径 script_path = os.path.join('app', 'core', 'data_parse', 'parse_neo4j_process.py') if not os.path.exists(script_path): print(f"错误: 找不到脚本文件 {script_path}") return False print(f"开始测试增强版脚本: {script_path}") print("=" * 60) try: # 运行脚本 start_time = time.time() result = subprocess.run( [sys.executable, script_path], capture_output=True, text=True, encoding='utf-8', cwd=os.getcwd() ) end_time = time.time() # 输出结果 print(f"脚本执行时间: {end_time - start_time:.2f} 秒") print(f"返回码: {result.returncode}") print("\n标准输出:") print(result.stdout) if result.stderr: print("\n标准错误:") print(result.stderr) # 判断执行结果 if result.returncode == 0: print("\n✅ 增强版脚本执行成功!") # 检查输出中是否包含新的功能信息 if "职位节点" in result.stdout and "级别节点" in result.stdout: print("✅ 检测到职位和级别节点创建功能") else: print("⚠️ 未检测到职位和级别节点创建功能") if "BELONGS_TO" in result.stdout and "HAS_LEVEL" in result.stdout: print("✅ 检测到节点关系创建功能") else: print("⚠️ 未检测到节点关系创建功能") else: print(f"\n❌ 增强版脚本执行失败,返回码: {result.returncode}") return False return True except Exception as e: print(f"执行增强版脚本时发生错误: {e}") return False def test_import_enhanced_modules(): """测试增强后的模块导入""" print("测试增强后的模块导入...") try: # 测试配置模块 from app.config.config import config, current_env print("✅ 配置模块导入成功") # 测试Neo4j驱动模块 from app.services.neo4j_driver import Neo4jDriver print("✅ Neo4j驱动模块导入成功") # 测试SQLAlchemy模块 from sqlalchemy import create_engine, text print("✅ SQLAlchemy模块导入成功") # 测试增强后的处理器类 from app.core.data_parse.parse_neo4j_process import HotelPositionNeo4jProcessor print("✅ 增强后的处理器类导入成功") return True except ImportError as e: print(f"❌ 模块导入失败: {e}") return False def test_enhanced_functionality(): """测试增强功能""" print("\n测试增强功能...") try: from app.core.data_parse.parse_neo4j_process import HotelPositionNeo4jProcessor # 创建处理器实例 processor = HotelPositionNeo4jProcessor() print("✅ 成功创建处理器实例") # 检查方法是否存在 if hasattr(processor, 'create_relationship'): print("✅ 检测到关系创建方法") else: print("❌ 未检测到关系创建方法") if hasattr(processor, 'process_hotel_data'): print("✅ 检测到酒店数据处理方法") else: print("❌ 未检测到酒店数据处理方法") return True except Exception as e: print(f"❌ 测试增强功能时发生错误: {e}") return False def main(): """主函数""" print("酒店职位数据Neo4j同步程序增强功能测试") print("=" * 60) # 测试模块导入 if not test_import_enhanced_modules(): print("\n模块导入测试失败,跳过其他测试") return print("\n" + "=" * 60) # 测试增强功能 if not test_enhanced_functionality(): print("\n增强功能测试失败,跳过脚本执行测试") return print("\n" + "=" * 60) # 测试脚本执行 if test_enhanced_parse_neo4j_process(): print("\n🎉 所有增强功能测试通过!") else: print("\n💥 增强功能测试失败!") if __name__ == "__main__": main()