This commit is contained in:
beabigegg
2025-09-02 13:11:48 +08:00
parent a60d965317
commit b11a8272c4
76 changed files with 15321 additions and 200 deletions

96
test_fixed_translation.py Normal file
View File

@@ -0,0 +1,96 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Test the fixed translation service
"""
import sys
import os
# Fix encoding for Windows console
if sys.stdout.encoding != 'utf-8':
sys.stdout.reconfigure(encoding='utf-8')
if sys.stderr.encoding != 'utf-8':
sys.stderr.reconfigure(encoding='utf-8')
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'app'))
from app import create_app
from app.services.translation_service import TranslationService
from app.models.job import TranslationJob
def test_fixed_translation_service():
"""Test the fixed translation service on a real job"""
app = create_app()
with app.app_context():
# Get the most recent job to test with
job = TranslationJob.query.order_by(TranslationJob.created_at.desc()).first()
if not job:
print("No jobs found to test")
return
print(f"Testing translation service on job: {job.job_uuid}")
print(f"Original filename: {job.original_filename}")
print(f"Target languages: {job.target_languages}")
print(f"File path: {job.file_path}")
# Reset job status to PENDING for testing
job.status = 'PENDING'
job.progress = 0.0
job.error_message = None
from app import db
db.session.commit()
print(f"Reset job status to PENDING")
# Create translation service and test
service = TranslationService()
try:
print("Starting translation...")
result = service.translate_document(job.job_uuid)
print(f"Translation completed!")
print(f"Result: {result}")
# Check the job status
db.session.refresh(job)
print(f"Final job status: {job.status}")
print(f"Progress: {job.progress}%")
print(f"Total tokens: {job.total_tokens}")
print(f"Total cost: ${job.total_cost}")
if job.error_message:
print(f"Error message: {job.error_message}")
# Check translated files
translated_files = job.get_translated_files()
print(f"Generated {len(translated_files)} translated files:")
for tf in translated_files:
print(f" - {tf.filename} ({tf.language_code}) - Size: {tf.file_size} bytes")
# Check if file exists and has content
from pathlib import Path
if Path(tf.file_path).exists():
size = Path(tf.file_path).stat().st_size
print(f" File exists with {size} bytes")
# Quick check if it contains translations (different from original)
if size != job.get_original_file().file_size:
print(f" ✅ File size differs from original - likely contains translations")
else:
print(f" ⚠️ File size same as original - may not contain translations")
else:
print(f" ❌ File not found at: {tf.file_path}")
except Exception as e:
print(f"Translation failed with error: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
test_fixed_translation_service()