12th_fix error

This commit is contained in:
beabigegg
2025-09-04 09:44:13 +08:00
parent d638d682b7
commit 5662fcc039
19 changed files with 1735 additions and 50 deletions

74
test_notification_api.py Normal file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
測試通知 API
"""
import requests
import json
# API 基礎 URL
BASE_URL = 'http://127.0.0.1:5000/api/v1'
def test_notification_api():
"""測試通知 API 端點"""
# 首先需要登入獲取 JWT Token
# 這裡使用預設的管理員帳號
login_data = {
'username': 'ymirliu',
'password': 'password123' # LDAP 系統預設密碼
}
try:
print("Testing notification API...")
# 登入
print("1. Testing login...")
login_response = requests.post(f'{BASE_URL}/auth/login', json=login_data, timeout=10)
print(f"Login status: {login_response.status_code}")
if login_response.status_code == 200:
token = login_response.json()['data']['access_token']
headers = {'Authorization': f'Bearer {token}'}
# 測試獲取通知列表
print("2. Testing get notifications...")
notifications_response = requests.get(f'{BASE_URL}/notifications', headers=headers, timeout=10)
print(f"Get notifications status: {notifications_response.status_code}")
if notifications_response.status_code == 200:
data = notifications_response.json()
print(f"Response: {json.dumps(data, indent=2, ensure_ascii=False)}")
else:
print(f"Error response: {notifications_response.text}")
# 測試創建測試通知
print("3. Testing create test notification...")
test_notification_response = requests.post(f'{BASE_URL}/notifications/test', headers=headers, timeout=10)
print(f"Create test notification status: {test_notification_response.status_code}")
if test_notification_response.status_code == 200:
data = test_notification_response.json()
print(f"Test notification created: {json.dumps(data, indent=2, ensure_ascii=False)}")
else:
print(f"Error response: {test_notification_response.text}")
# 再次獲取通知列表,應該能看到測試通知
print("4. Testing get notifications again...")
notifications_response = requests.get(f'{BASE_URL}/notifications', headers=headers, timeout=10)
print(f"Get notifications status: {notifications_response.status_code}")
if notifications_response.status_code == 200:
data = notifications_response.json()
print(f"Updated notifications: {json.dumps(data, indent=2, ensure_ascii=False)}")
else:
print(f"Error response: {notifications_response.text}")
else:
print(f"Login failed: {login_response.text}")
except requests.exceptions.ConnectionError:
print("Error: Could not connect to server. Make sure the Flask app is running on http://127.0.0.1:5000")
except Exception as e:
print(f"Error testing notification API: {e}")
if __name__ == '__main__':
test_notification_api()