G41_TAPD_BUG_SYNC/src2/test_setup.py

221 lines
6.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
任务二第一阶段验证脚本
验证基础框架搭建是否正确
"""
import sys
from pathlib import Path
# 将项目根目录添加到 Python 路径
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
def test_directory_structure():
"""测试1: 验证目录结构"""
print("=" * 50)
print("测试1: 验证目录结构")
print("=" * 50)
src2_dir = project_root / "src2"
logs2_dir = project_root / "logs2"
config_file = project_root / "config" / "config_task2.ini"
results = []
# 检查 src2 目录
if src2_dir.exists() and src2_dir.is_dir():
print(f" [OK] src2/ 目录存在")
results.append(True)
else:
print(f" [FAIL] src2/ 目录不存在")
results.append(False)
# 检查 logs2 目录
if logs2_dir.exists() and logs2_dir.is_dir():
print(f" [OK] logs2/ 目录存在")
results.append(True)
else:
print(f" [FAIL] logs2/ 目录不存在")
results.append(False)
# 检查配置文件
if config_file.exists():
print(f" [OK] config/config_task2.ini 存在")
results.append(True)
else:
print(f" [FAIL] config/config_task2.ini 不存在")
results.append(False)
return all(results)
def test_config_read():
"""测试2: 验证配置文件读取"""
print("\n" + "=" * 50)
print("测试2: 验证配置文件读取")
print("=" * 50)
try:
from src2.config import Task2ConfigManager
config = Task2ConfigManager()
# 读取TAPD配置
tapd_config = config.get_tapd_config()
print(f" [OK] TAPD配置读取成功")
print(f" workspace_id: {tapd_config['workspace_id']}")
# 读取SmartSheet配置
smartsheet_config = config.get_smartsheet_config()
print(f" [OK] SmartSheet配置读取成功")
print(f" docid: {smartsheet_config['docid']}")
# 读取Schedule配置
schedule_config = config.get_schedule_config()
print(f" [OK] Schedule配置读取成功")
print(f" sync_interval: {schedule_config['sync_interval']} 分钟")
return True
except Exception as e:
print(f" [FAIL] 配置读取失败: {e}")
return False
def test_logger():
"""测试3: 验证日志写入"""
print("\n" + "=" * 50)
print("测试3: 验证日志写入到 logs2/")
print("=" * 50)
try:
from src2.logger import get_task2_logger, TASK2_LOG_DIR
logger = get_task2_logger()
# 写入测试日志
logger.log_api_call(
api_type="test",
operation="task2/setup_test",
request_data={"test": "验证脚本测试"},
response_data={"status": "success"},
success=True
)
# 检查日志文件是否创建
log_file = logger._get_today_log_file()
if log_file.exists():
print(f" [OK] 日志写入成功")
print(f" 日志目录: {TASK2_LOG_DIR}")
print(f" 日志文件: {log_file.name}")
return True
else:
print(f" [FAIL] 日志文件未创建")
return False
except Exception as e:
print(f" [FAIL] 日志测试失败: {e}")
return False
def test_token_manager():
"""测试4: 验证Token管理器复用"""
print("\n" + "=" * 50)
print("测试4: 验证Token管理器复用")
print("=" * 50)
try:
from src.token_manager import TokenManager
# 创建TokenManager实例使用默认缓存路径
token_manager = TokenManager()
print(f" [OK] TokenManager导入成功")
print(f" 缓存文件: {token_manager.cache_file_path}")
# 尝试获取token
token = token_manager.get_token()
print(f" [OK] Token获取成功")
print(f" Token前20字符: {token[:20]}...")
return True
except ValueError as e:
print(f" [WARN] 环境变量未设置: {e}")
print(f" 这不影响框架搭建,后续运行时需要设置")
return True # 环境变量未设置不算失败
except Exception as e:
print(f" [FAIL] Token测试失败: {e}")
return False
def test_smartsheet_api():
"""测试5: 验证SmartSheetAPI复用"""
print("\n" + "=" * 50)
print("测试5: 验证SmartSheetAPI复用")
print("=" * 50)
try:
from src.smartsheet import SmartSheetAPI
from src.token_manager import TokenManager
from src2.config import Task2ConfigManager
print(f" [OK] SmartSheetAPI导入成功")
# 获取配置
config = Task2ConfigManager()
docid = config.get_smartsheet_config()['docid']
# 获取token
token_manager = TokenManager()
token = token_manager.get_token()
# 创建SmartSheetAPI实例
api = SmartSheetAPI(token, docid)
print(f" [OK] SmartSheetAPI实例创建成功")
print(f" docid: {docid}")
return True
except Exception as e:
print(f" [FAIL] SmartSheetAPI测试失败: {e}")
return False
def main():
"""运行所有测试"""
print("\n" + "=" * 50)
print("任务二第一阶段验证")
print("=" * 50)
results = {
"目录结构": test_directory_structure(),
"配置读取": test_config_read(),
"日志写入": test_logger(),
"Token管理": test_token_manager(),
"SmartSheetAPI": test_smartsheet_api()
}
# 汇总结果
print("\n" + "=" * 50)
print("验证结果汇总")
print("=" * 50)
passed = 0
failed = 0
for name, result in results.items():
status = "[OK]" if result else "[FAIL]"
print(f" {status} {name}")
if result:
passed += 1
else:
failed += 1
print(f"\n总计: {passed} 通过, {failed} 失败")
if failed == 0:
print("\n第一阶段验收通过!")
else:
print("\n请检查失败项并修复")
return failed == 0
if __name__ == "__main__":
main()