13th_fix combine download
This commit is contained in:
76
test_notification_send.py
Normal file
76
test_notification_send.py
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
測試通知發送功能
|
||||
"""
|
||||
|
||||
from app import create_app, db
|
||||
from app.models import TranslationJob, User
|
||||
from app.services.notification_service import NotificationService
|
||||
from app.models import NotificationType
|
||||
|
||||
def test_notification_sending():
|
||||
"""測試通知發送功能"""
|
||||
try:
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
print("Testing notification sending...")
|
||||
|
||||
# 查找一個用戶
|
||||
user = User.query.first()
|
||||
if not user:
|
||||
print("No users found, cannot test notification")
|
||||
return
|
||||
|
||||
print(f"Found user: {user.username} (ID: {user.id})")
|
||||
|
||||
# 創建一個模擬的翻譯任務
|
||||
from datetime import datetime
|
||||
from uuid import uuid4
|
||||
|
||||
mock_job = TranslationJob(
|
||||
job_uuid=str(uuid4()),
|
||||
user_id=user.id,
|
||||
original_filename="test_document.docx",
|
||||
status="COMPLETED",
|
||||
target_languages=["zh-TW", "en"],
|
||||
total_cost=0.05,
|
||||
completed_at=datetime.now()
|
||||
)
|
||||
|
||||
# 不保存到資料庫,只用於測試通知
|
||||
print(f"Created mock job: {mock_job.job_uuid}")
|
||||
|
||||
# 測試通知服務
|
||||
notification_service = NotificationService()
|
||||
|
||||
# 測試直接發送通知(不檢查狀態)
|
||||
print("Testing direct notification sending...")
|
||||
notification = notification_service.send_job_completion_db_notification_direct(mock_job)
|
||||
|
||||
if notification:
|
||||
print(f"✅ Notification created successfully!")
|
||||
print(f" - ID: {notification.notification_uuid}")
|
||||
print(f" - Title: {notification.title}")
|
||||
print(f" - Message: {notification.message}")
|
||||
print(f" - Type: {notification.type}")
|
||||
print(f" - User ID: {notification.user_id}")
|
||||
else:
|
||||
print("❌ Failed to create notification")
|
||||
|
||||
# 檢查資料庫中的通知數量
|
||||
from app.models import Notification
|
||||
total_notifications = Notification.query.count()
|
||||
user_notifications = Notification.query.filter_by(user_id=user.id).count()
|
||||
|
||||
print(f"\nDatabase status:")
|
||||
print(f" - Total notifications: {total_notifications}")
|
||||
print(f" - Notifications for user {user.username}: {user_notifications}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error testing notification sending: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_notification_sending()
|
Reference in New Issue
Block a user