checkpoint: SQLite 清理——业务/测试层统一 PostgreSQL(删 aiosqlite/fakeredis)
- setting: DATABASE_TYPE 收窄为 postgres,DB_URI/ASYNC_DB_URI 去 sqlite 分支 - database: create_async_engine_and_session 去 sqlite 分支(同步 psycopg 引擎保留给 jobstore) - number_gen: 去 DATABASE_TYPE 非 postgres 早退(advisory lock 恒定走 PG) - chat/crud: 删 SqliteDb 分支(agno 无硬依赖) - pyproject/requirements/uv.lock: 删 aiosqlite、fakeredis;conftest 口径注释同步 - test_stat_analysis_tc: docstring 口径 SQLite→PG
This commit is contained in:
@@ -6,9 +6,9 @@
|
||||
本包装层以 subprocess 顺序调用这些脚本,断言 rc==0 —— 与 run_regression.py 的执行契约一致。
|
||||
|
||||
关键点:
|
||||
- 全部基于真实 PG16 + Redis(本工程无 SQLite),仅当探测到 PG/Redis 可达才跑,否则 skipif 跳过。
|
||||
- 不 import 任何 app 模块(避免被 conftest 的 sqlite 环境污染);subprocess env 显式构建:
|
||||
剥掉 conftest 注入的 DATABASE_TYPE/DATABASE_NAME/POOL_SIZE/MAX_OVERFLOW/CAPTCHA_ENABLE,
|
||||
- 全部基于真实 PG16 + Redis,仅当探测到 PG/Redis 可达才跑,否则 skipif 跳过。
|
||||
- 不 import 任何 app 模块(测试库生命周期由 conftest 管理,与统计引擎 tc 独立);subprocess env 显式构建:
|
||||
清空可能残留的 DATABASE_*/REDIS_*/POOL_*/CAPTCHA_ENABLE 等连接变量,
|
||||
置 ENVIRONMENT=dev / DATABASE_TYPE=postgres / PYTHONPATH=backend / PYTHONUTF8=1,
|
||||
再并入从 backend/env/.env.dev 解析的真实连接值(可被 TC_CI_* 覆盖,用于验证 skipif 路径)。
|
||||
- 标记 pg(pyproject 已注册),`pytest -m pg` 只跑本组;run_ci.py 的验收门即此命令。
|
||||
@@ -118,7 +118,7 @@ def pg_ready() -> tuple[bool, bool, str]:
|
||||
|
||||
|
||||
def _sub_env() -> dict:
|
||||
"""显式构建子进程环境:剥掉 conftest 注入的 sqlite 变量,置真实 PG/Redis 连接。"""
|
||||
"""显式构建子进程环境:清空可能残留的连接变量,置真实 PG/Redis 连接。"""
|
||||
env = dict(os.environ)
|
||||
for k in ("DATABASE_TYPE", "DATABASE_NAME", "POOL_SIZE", "MAX_OVERFLOW",
|
||||
"CAPTCHA_ENABLE", "ENVIRONMENT", "PYTHONPATH", "PYTHONIOENCODING"):
|
||||
|
||||
Reference in New Issue
Block a user