- tests/core: 新增 BaseHttpClient 统一 HTTP 封装(直连绕行/超时/日志/自定义编码); db_helper 追加 Db 长连接类(事务/mogrify/自动重连),既有函数不动 - tests/apis/yun8: 21 个 step 方法按域拆分为 5 个 Mixin(driver/accounting/ audit_payment/receipt/third_party),Yun8Pipeline 24 步编排原样迁移, SQL 全部参数化并集中至 sql_templates - tests/api: 5 阶段有序 P0 E2E 用例(业务失败由 print 改为真实报错)+ README 迁移(删除明文密码段,修正步骤编号漂移) - yun8_sync 目录退役:配置并入 test_config.yaml 的 yun8_api 段; 造数 CLI 保留(python -m tests.apis.yun8.cli,兼容旧 config.yaml 结构) - pytest.ini 注册 api/yun8_sync marker;requirements.txt 补 requests>=2.28 - 静态验证: compileall / 全仓 collect 24 条 / marker 过滤 / CLI --help / 客户端与 pipeline 离线实例化 / SQL 占位符核对 / cross_end 兼容
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""tests/api conftest — yun8 运输流程 API 造数 fixtures。
|
||
|
||
Usage:
|
||
def test_xxx(yun8_config, yun8_pipeline, yun8_context):
|
||
yun8_pipeline.run_driver_flow()
|
||
"""
|
||
|
||
import pytest
|
||
|
||
|
||
@pytest.fixture(scope="session")
|
||
def yun8_config(config):
|
||
"""yun8 运输流程 API 配置段(test_config.yaml 的 yun8_api)。"""
|
||
return config["yun8_api"]
|
||
|
||
|
||
@pytest.fixture(scope="class")
|
||
def yun8_db(yun8_config):
|
||
"""class 级数据库长连接(造数 SQL 复用)。"""
|
||
from tests.core.db_helper import Db
|
||
db = Db()
|
||
yield db
|
||
db.close()
|
||
|
||
|
||
@pytest.fixture(scope="class")
|
||
def yun8_pipeline(yun8_config, yun8_db):
|
||
"""class 级 Yun8Pipeline — 5 个阶段用例共享同一份 Postman 变量上下文。
|
||
|
||
注意: 根 conftest 的 logger fixture 是 function 级,
|
||
这里直接用 get_logger(pipeline 内部亦如此)。
|
||
"""
|
||
from tests.apis.yun8.pipeline import Yun8Pipeline
|
||
pipe = Yun8Pipeline(yun8_config, yun8_db)
|
||
pipe.set_auth(yun8_config["tokens"]["driver_token"],
|
||
yun8_config["tokens"]["admin_token"])
|
||
yield pipe
|
||
pipe.close()
|
||
|
||
|
||
@pytest.fixture(scope="class")
|
||
def yun8_context():
|
||
"""跨阶段共享上下文:记录中断原因,供后续阶段 skip。"""
|
||
return {"aborted": None}
|