Files
outlookEmailPlus/tests/_import_app.py
T
胡绍康andCopilot cf7817bb95 feat: UI全局美化重设计 + 恢复CI/测试/文档
UI 改进:
- 设置页面内嵌显示(不再弹窗)
- 临时邮箱卡片添加验证码提取按钮
- 导入账号弹窗 textarea 样式优化
- 账号头像 8 色渐变轮转
- 临时邮箱页顶栏邮箱点击复制
- 邮箱管理页自动选中默认分组
- 切换分组时重置邮件列 UI
- 修复收件箱/垃圾邮件 Tab 切换(.folder-tab → .email-tab)
- 修复从临时邮箱返回后账号列数据残留
- 仪表盘分组列表可点击导航

恢复:
- 恢复 .github/ CI 工作流
- 恢复 tests/ 测试目录
- 恢复 docs/ 文档目录
- 恢复 CONTRIBUTING.md, SECURITY.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-01 21:24:06 +08:00

47 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import importlib
import os
import sys
import tempfile
from pathlib import Path
_TEMP_DIR = tempfile.TemporaryDirectory(prefix="outlookEmail-tests-")
_DB_PATH = Path(_TEMP_DIR.name) / "test.db"
def import_web_app_module():
"""
以"可测试"的方式导入 web_outlook_app:
- 注入必要环境变量(SECRET_KEY / DATABASE_PATH 等)
- 禁用调度器自启动,避免测试期间启动后台线程
- 将 DB 指向临时文件,避免污染本地 data/
"""
os.environ["SECRET_KEY"] = "test-secret-key-32bytes-minimum-0000000000000000"
os.environ["LOGIN_PASSWORD"] = "testpass123" # >= 8
os.environ["SCHEDULER_AUTOSTART"] = "false"
os.environ["DATABASE_PATH"] = str(_DB_PATH)
if "web_outlook_app" in sys.modules:
return sys.modules["web_outlook_app"]
module = importlib.import_module("web_outlook_app")
# 测试配置:禁用 CSRF(避免额外 token 依赖),开启 TESTING
module.app.config.update(
TESTING=True,
WTF_CSRF_ENABLED=False,
WTF_CSRF_CHECK_DEFAULT=False,
)
return module
def clear_login_attempts():
"""清理登录限制记录,避免测试间互相影响"""
from outlook_web.db import get_db
try:
db = get_db()
db.execute("DELETE FROM login_attempts")
db.commit()
except Exception:
pass