import os import tempfile # 把数据库与笔记输出目录强制指向临时位置: # - 避免测试污染真实的 video_memo.db / note_results(配置/笔记已迁入数据库后, # 管理器与 note_dao 的读写都走全局 engine,不隔离会写进开发库)。 # - 顺带建好 app_config / notes 等新表,供依赖数据库的单测使用。 # 必须在任何 app 模块导入前设置:pytest 最先加载 conftest,此处 import app.db.* 时 # engine 才会按这里的 DATABASE_URL 初始化。load_dotenv(override=False) 不会覆盖已设的值。 _TEST_DIR = tempfile.mkdtemp(prefix="videomemo-test-") os.environ["DATABASE_URL"] = "sqlite:///" + os.path.join(_TEST_DIR, "test.db") os.environ.setdefault("NOTE_OUTPUT_DIR", os.path.join(_TEST_DIR, "note_results")) from app.db.init_db import init_db # noqa: E402 init_db()