]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
✅ Simplify tests for `settings` (#13505)
authorValentyn <valentin.druzhinin@gmail.com>
Tue, 17 Jun 2025 10:25:20 +0000 (06:25 -0400)
committerGitHub <noreply@github.com>
Tue, 17 Jun 2025 10:25:20 +0000 (12:25 +0200)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
tests/test_tutorial/test_settings/test_tutorial001.py
tests/test_tutorial/test_settings/test_tutorial001_pv1.py [deleted file]

index eb30dbcee44bc64d4836655aab3e69b70bed11b1..92a5782d4ded1cfcda409551e80e75b970afa8f8 100644 (file)
@@ -1,14 +1,26 @@
+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
 
 
-@needs_pydanticv2
-def test_settings(monkeypatch: MonkeyPatch):
+@pytest.fixture(
+    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")
-    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)
     response = client.get("/info")
     assert response.status_code == 200, response.text
diff --git a/tests/test_tutorial/test_settings/test_tutorial001_pv1.py b/tests/test_tutorial/test_settings/test_tutorial001_pv1.py
deleted file mode 100644 (file)
index e4659de..0000000
+++ /dev/null
@@ -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,
-    }