2ND
This commit is contained in:
137
test_startup.py
Normal file
137
test_startup.py
Normal file
@@ -0,0 +1,137 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
測試系統啟動的腳本
|
||||
用於檢查各個模組是否可以正常導入和初始化
|
||||
"""
|
||||
|
||||
def test_imports():
|
||||
"""測試所有模組導入"""
|
||||
print("🔧 測試模組導入...")
|
||||
|
||||
try:
|
||||
print(" ├─ 測試基本 Flask 組件...")
|
||||
from flask import Flask
|
||||
from flask_login import LoginManager
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
print(" │ ✅ Flask 基本組件導入成功")
|
||||
|
||||
print(" ├─ 測試資料庫模型...")
|
||||
from models import db, User, TempSpec
|
||||
print(" │ ✅ 資料庫模型導入成功")
|
||||
|
||||
print(" ├─ 測試工具函式...")
|
||||
from utils import admin_required, editor_or_admin_required, send_email
|
||||
print(" │ ✅ 工具函式導入成功")
|
||||
|
||||
print(" ├─ 測試 LDAP 工具...")
|
||||
from ldap_utils import authenticate_ldap_user, search_ldap_principals
|
||||
print(" │ ✅ LDAP 工具導入成功")
|
||||
|
||||
print(" ├─ 測試路由模組...")
|
||||
from routes.auth import auth_bp
|
||||
print(" │ ✅ auth 路由導入成功")
|
||||
|
||||
from routes.temp_spec import temp_spec_bp
|
||||
print(" │ ✅ temp_spec 路由導入成功")
|
||||
|
||||
from routes.admin import admin_bp
|
||||
print(" │ ✅ admin 路由導入成功")
|
||||
|
||||
from routes.api import api_bp
|
||||
print(" │ ✅ api 路由導入成功")
|
||||
|
||||
from routes.upload import upload_bp
|
||||
print(" │ ✅ upload 路由導入成功")
|
||||
|
||||
print(" ├─ 測試排程任務...")
|
||||
from tasks import check_expiring_specs
|
||||
print(" │ ✅ 排程任務導入成功")
|
||||
|
||||
print(" └─ 所有模組導入成功!")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ 模組導入失敗: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
def test_app_creation():
|
||||
"""測試 Flask 應用程式建立"""
|
||||
print("\n🔧 測試應用程式建立...")
|
||||
|
||||
try:
|
||||
from app import app
|
||||
print(" ✅ Flask 應用程式建立成功")
|
||||
|
||||
# 測試路由註冊
|
||||
with app.app_context():
|
||||
print(f" ✅ 應用程式名稱: {app.name}")
|
||||
print(f" ✅ 註冊的藍圖數量: {len(app.blueprints)}")
|
||||
for bp_name in app.blueprints:
|
||||
print(f" - {bp_name}")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ 應用程式建立失敗: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
def test_config():
|
||||
"""測試設定檔"""
|
||||
print("\n🔧 測試設定檔...")
|
||||
|
||||
try:
|
||||
from config import Config
|
||||
print(" ✅ 設定檔導入成功")
|
||||
|
||||
# 檢查重要設定
|
||||
config = Config()
|
||||
print(f" ✅ SECRET_KEY 已設定: {'是' if hasattr(config, 'SECRET_KEY') and config.SECRET_KEY else '否'}")
|
||||
print(f" ✅ DATABASE_URL 已設定: {'是' if hasattr(config, 'SQLALCHEMY_DATABASE_URI') and config.SQLALCHEMY_DATABASE_URI else '否'}")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ 設定檔測試失敗: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
def main():
|
||||
"""主測試函式"""
|
||||
print("=" * 50)
|
||||
print("🚀 暫時規範管理系統 V3 - 啟動測試")
|
||||
print("=" * 50)
|
||||
|
||||
success_count = 0
|
||||
total_tests = 3
|
||||
|
||||
# 測試模組導入
|
||||
if test_imports():
|
||||
success_count += 1
|
||||
|
||||
# 測試設定檔
|
||||
if test_config():
|
||||
success_count += 1
|
||||
|
||||
# 測試應用程式建立
|
||||
if test_app_creation():
|
||||
success_count += 1
|
||||
|
||||
# 結果統計
|
||||
print("\n" + "=" * 50)
|
||||
print(f"📊 測試結果: {success_count}/{total_tests} 個測試通過")
|
||||
|
||||
if success_count == total_tests:
|
||||
print("🎉 所有測試通過!系統可以正常啟動。")
|
||||
return True
|
||||
else:
|
||||
print("⚠️ 部分測試失敗,請檢查上述錯誤訊息。")
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = main()
|
||||
exit(0 if success else 1)
|
Reference in New Issue
Block a user