#!/usr/bin/env python3 """ 测试井数据管理器功能的脚本 """ import sys import logging from ddms_compliance_suite.utils.well_data_manager import WellDataManager def test_well_data_manager(): """测试井数据管理器的基本功能""" # 设置日志 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) # 初始化井数据管理器 base_url = "https://www.dev.ideas.cnpc" well_manager = WellDataManager( base_url=base_url, ignore_ssl=True, logger=logger ) logger.info("开始测试井数据管理器...") # 测试初始化井数据 logger.info("1. 测试井数据初始化...") success = well_manager.initialize_well_data() if success: logger.info("✅ 井数据初始化成功") # 获取数据摘要 summary = well_manager.get_well_data_summary() logger.info(f"📊 井数据摘要: {summary}") # 测试获取随机井数据 logger.info("2. 测试获取随机井数据...") well_data = well_manager.get_random_well_data() if well_data: logger.info(f"✅ 获取到井数据: wellId={well_data.get('wellId')}, wellCommonName={well_data.get('wellCommonName')}") else: logger.warning("❌ 未获取到井数据") # 测试获取随机井筒数据 logger.info("3. 测试获取随机井筒数据...") wellbore_data = well_manager.get_random_wellbore_data() if wellbore_data: logger.info(f"✅ 获取到井筒数据: wellboreId={wellbore_data.get('wellboreId')}, wellboreCommonName={wellbore_data.get('wellboreCommonName')}") else: logger.warning("❌ 未获取到井筒数据") # 测试字段值获取 logger.info("4. 测试字段值获取...") test_fields = ['wellId', 'wellboreId', 'wellCommonName', 'wellboreCommonName'] for field in test_fields: value = well_manager.get_well_value_for_field(field) if value: logger.info(f"✅ {field}: {value}") else: logger.warning(f"❌ {field}: 未获取到值") # 测试数据增强 logger.info("5. 测试数据增强...") test_data = { 'wellId': 'mock_well_id', 'wellboreId': 'mock_wellbore_id', 'wellCommonName': 'mock_well_name', 'otherField': 'other_value' } enhanced_data = well_manager.enhance_data_with_well_values(test_data) logger.info(f"原始数据: {test_data}") logger.info(f"增强数据: {enhanced_data}") # 检查是否有真实数据替换了模拟数据 changes = [] for key in test_data: if test_data[key] != enhanced_data.get(key): changes.append(f"{key}: {test_data[key]} -> {enhanced_data.get(key)}") if changes: logger.info(f"✅ 数据增强成功,替换了以下字段: {', '.join(changes)}") else: logger.warning("❌ 数据增强未发生变化") else: logger.error("❌ 井数据初始化失败") return False logger.info("井数据管理器测试完成") return True if __name__ == "__main__": success = test_well_data_manager() sys.exit(0 if success else 1)