1 changed files with 34 additions and 9 deletions
@ -1,20 +1,45 @@ |
|||
import importlib |
|||
from types import ModuleType |
|||
|
|||
import pytest |
|||
from pytest import MonkeyPatch |
|||
|
|||
from ...utils import needs_pydanticv2 |
|||
from ...utils import needs_py39, needs_pydanticv2 |
|||
|
|||
|
|||
@needs_pydanticv2 |
|||
def test_settings(monkeypatch: MonkeyPatch): |
|||
from docs_src.settings.app02 import main |
|||
@pytest.fixture( |
|||
name="mod_path", |
|||
params=[ |
|||
pytest.param("app02"), |
|||
pytest.param("app02_an"), |
|||
pytest.param("app02_an_py39", marks=needs_py39), |
|||
], |
|||
) |
|||
def get_mod_path(request: pytest.FixtureRequest): |
|||
mod_path = f"docs_src.settings.{request.param}" |
|||
return mod_path |
|||
|
|||
|
|||
@pytest.fixture(name="main_mod") |
|||
def get_main_mod(mod_path: str) -> ModuleType: |
|||
main_mod = importlib.import_module(f"{mod_path}.main") |
|||
return main_mod |
|||
|
|||
|
|||
@pytest.fixture(name="test_main_mod") |
|||
def get_test_main_mod(mod_path: str) -> ModuleType: |
|||
test_main_mod = importlib.import_module(f"{mod_path}.test_main") |
|||
return test_main_mod |
|||
|
|||
|
|||
@needs_pydanticv2 |
|||
def test_settings(main_mod: ModuleType, monkeypatch: MonkeyPatch): |
|||
monkeypatch.setenv("ADMIN_EMAIL", "[email protected]") |
|||
settings = main.get_settings() |
|||
settings = main_mod.get_settings() |
|||
assert settings.app_name == "Awesome API" |
|||
assert settings.items_per_user == 50 |
|||
|
|||
|
|||
@needs_pydanticv2 |
|||
def test_override_settings(): |
|||
from docs_src.settings.app02 import test_main |
|||
|
|||
test_main.test_app() |
|||
def test_override_settings(test_main_mod: ModuleType): |
|||
test_main_mod.test_app() |
|||
|
|||
Loading…
Reference in new issue