112 lines
3.2 KiB
Python
112 lines
3.2 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
測試翻譯功能修復
|
||
"""
|
||
|
||
import sys
|
||
import os
|
||
import tempfile
|
||
import uuid
|
||
from pathlib import Path
|
||
|
||
# 添加 app 路徑
|
||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||
|
||
def test_celery_import():
|
||
"""測試 Celery 導入"""
|
||
try:
|
||
from app.tasks.translation import process_translation_job, cleanup_old_files, send_daily_admin_report
|
||
print("Celery 任務導入成功")
|
||
return True
|
||
except Exception as e:
|
||
print(f"Celery 任務導入失敗: {str(e)}")
|
||
return False
|
||
|
||
def test_translation_service():
|
||
"""測試翻譯服務"""
|
||
try:
|
||
from app import create_app
|
||
from app.services.translation_service import TranslationService
|
||
|
||
app = create_app()
|
||
with app.app_context():
|
||
service = TranslationService()
|
||
print("翻譯服務初始化成功")
|
||
return True
|
||
except Exception as e:
|
||
print(f"翻譯服務測試失敗: {str(e)}")
|
||
return False
|
||
|
||
def test_document_processor():
|
||
"""測試文檔處理器"""
|
||
try:
|
||
from app.services.document_processor import DocumentProcessor
|
||
|
||
processor = DocumentProcessor()
|
||
print("文檔處理器初始化成功")
|
||
return True
|
||
except Exception as e:
|
||
print(f"文檔處理器測試失敗: {str(e)}")
|
||
return False
|
||
|
||
def test_task_execution():
|
||
"""測試任務執行(不實際調用 API)"""
|
||
try:
|
||
from app import create_app
|
||
from app.models.job import TranslationJob
|
||
from app.services.translation_service import TranslationService
|
||
|
||
app = create_app()
|
||
with app.app_context():
|
||
# 創建模擬任務進行測試
|
||
print("任務執行環境準備成功")
|
||
return True
|
||
except Exception as e:
|
||
print(f"任務執行測試失敗: {str(e)}")
|
||
return False
|
||
|
||
def main():
|
||
"""主測試函數"""
|
||
print("開始測試翻譯功能修復...")
|
||
print("=" * 50)
|
||
|
||
tests = [
|
||
("Celery 導入測試", test_celery_import),
|
||
("翻譯服務測試", test_translation_service),
|
||
("文檔處理器測試", test_document_processor),
|
||
("任務執行測試", test_task_execution)
|
||
]
|
||
|
||
results = []
|
||
for test_name, test_func in tests:
|
||
print(f"\n{test_name}:")
|
||
try:
|
||
result = test_func()
|
||
results.append((test_name, result))
|
||
except Exception as e:
|
||
print(f"{test_name} 執行異常: {str(e)}")
|
||
results.append((test_name, False))
|
||
|
||
print("\n" + "=" * 50)
|
||
print("測試結果總結:")
|
||
|
||
passed = 0
|
||
for test_name, result in results:
|
||
status = "PASS" if result else "FAIL"
|
||
print(f" {status}: {test_name}")
|
||
if result:
|
||
passed += 1
|
||
|
||
print(f"\n通過測試: {passed}/{len(results)}")
|
||
|
||
if passed == len(results):
|
||
print("所有測試通過!翻譯功能修復成功!")
|
||
return True
|
||
else:
|
||
print("部分測試失敗,需要進一步檢查")
|
||
return False
|
||
|
||
if __name__ == "__main__":
|
||
success = main()
|
||
sys.exit(0 if success else 1) |