mirror of https://github.com/tiangolo/fastapi.git
✅ Simplify tests for `settings` (#13505)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
This commit is contained in:
parent
45fefe88cf
commit
85a2eed888
|
|
@ -1,14 +1,26 @@
|
||||||
|
import importlib
|
||||||
|
|
||||||
|
import pytest
|
||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
from pytest import MonkeyPatch
|
from pytest import MonkeyPatch
|
||||||
|
|
||||||
from ...utils import needs_pydanticv2
|
from ...utils import needs_pydanticv1, needs_pydanticv2
|
||||||
|
|
||||||
|
|
||||||
@needs_pydanticv2
|
@pytest.fixture(
|
||||||
def test_settings(monkeypatch: MonkeyPatch):
|
name="app",
|
||||||
|
params=[
|
||||||
|
pytest.param("tutorial001", marks=needs_pydanticv2),
|
||||||
|
pytest.param("tutorial001_pv1", marks=needs_pydanticv1),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def get_app(request: pytest.FixtureRequest, monkeypatch: MonkeyPatch):
|
||||||
monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
|
monkeypatch.setenv("ADMIN_EMAIL", "admin@example.com")
|
||||||
from docs_src.settings.tutorial001 import app
|
mod = importlib.import_module(f"docs_src.settings.{request.param}")
|
||||||
|
return mod.app
|
||||||
|
|
||||||
|
|
||||||
|
def test_settings(app):
|
||||||
client = TestClient(app)
|
client = TestClient(app)
|
||||||
response = client.get("/info")
|
response = client.get("/info")
|
||||||
assert response.status_code == 200, response.text
|
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", "admin@example.com")
|
|
||||||
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": "admin@example.com",
|
|
||||||
"items_per_user": 50,
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue