2 changed files with 20 additions and 23 deletions
@ -1,14 +1,30 @@ |
|||
import importlib |
|||
|
|||
import pytest |
|||
from fastapi.testclient import TestClient |
|||
from pytest import MonkeyPatch |
|||
|
|||
from ...utils import needs_pydanticv2 |
|||
from ...utils import needs_pydanticv1, needs_pydanticv2 |
|||
|
|||
|
|||
@pytest.fixture( |
|||
params=[ |
|||
pytest.param("tutorial001", marks=needs_pydanticv2), |
|||
pytest.param("tutorial001_pv1", marks=needs_pydanticv1), |
|||
], |
|||
) |
|||
def get_app(request: pytest.FixtureRequest): |
|||
def app_wrapper(): |
|||
mod = importlib.import_module(f"docs_src.settings.{request.param}") |
|||
return mod.app |
|||
|
|||
return app_wrapper |
|||
|
|||
|
|||
@needs_pydanticv2 |
|||
def test_settings(monkeypatch: MonkeyPatch): |
|||
def test_settings(get_app, monkeypatch: MonkeyPatch): |
|||
monkeypatch.setenv("ADMIN_EMAIL", "[email protected]") |
|||
from docs_src.settings.tutorial001 import app |
|||
|
|||
app = get_app() |
|||
client = TestClient(app) |
|||
response = client.get("/info") |
|||
assert response.status_code == 200, response.text |
|||
|
@ -1,19 +0,0 @@ |
|||
from fastapi.testclient import TestClient |
|||
from pytest import MonkeyPatch |
|||
|
|||
from ...utils import needs_pydanticv1 |
|||
|
|||
|
|||
@needs_pydanticv1 |
|||
def test_settings(monkeypatch: MonkeyPatch): |
|||
monkeypatch.setenv("ADMIN_EMAIL", "[email protected]") |
|||
from docs_src.settings.tutorial001_pv1 import app |
|||
|
|||
client = TestClient(app) |
|||
response = client.get("/info") |
|||
assert response.status_code == 200, response.text |
|||
assert response.json() == { |
|||
"app_name": "Awesome API", |
|||
"admin_email": "[email protected]", |
|||
"items_per_user": 50, |
|||
} |
Loading…
Reference in new issue