221 lines
6.0 KiB
Python
221 lines
6.0 KiB
Python
"""
|
||
任务二第一阶段验证脚本
|
||
验证基础框架搭建是否正确
|
||
"""
|
||
|
||
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()
|