21 lines
567 B
Python
21 lines
567 B
Python
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
"""共享夹具:临时 SQLite 数据库 + TestClient(auth 与 rbac 测试共用)。"""
|
|||
|
|
from __future__ import annotations
|
|||
|
|
|
|||
|
|
import pytest
|
|||
|
|
from fastapi.testclient import TestClient
|
|||
|
|
|
|||
|
|
from app.main import app
|
|||
|
|
from app.repositories import Database
|
|||
|
|
|
|||
|
|
|
|||
|
|
@pytest.fixture()
|
|||
|
|
def client(tmp_path):
|
|||
|
|
"""把 app.state.db 换成指向临时 SQLite 的 Database,保证测试隔离。"""
|
|||
|
|
db = Database(db_url=f"sqlite:///{tmp_path}/test.db")
|
|||
|
|
db.initialize()
|
|||
|
|
app.state.db = db
|
|||
|
|
with TestClient(app) as c:
|
|||
|
|
yield c
|
|||
|
|
db.close()
|