Browse Source

Simplify tests for settings tutorial #13504

pull/13505/head
Valentyn Druzhynin 3 weeks ago
parent
commit
0d881322db
  1. 24
      tests/test_tutorial/test_settings/test_tutorial001.py
  2. 19
      tests/test_tutorial/test_settings/test_tutorial001_pv1.py

24
tests/test_tutorial/test_settings/test_tutorial001.py

@ -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

19
tests/test_tutorial/test_settings/test_tutorial001_pv1.py

@ -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…
Cancel
Save