@@ -7,6 +7,7 @@ from fastapi import FastAPI
|
||||
from app import config as config_module
|
||||
from app.config import Settings, get_settings
|
||||
from app.runtime import logging as logging_module
|
||||
from app.runtime import metrics as metrics_module
|
||||
from app.runtime import tracing as tracing_module
|
||||
|
||||
TEST_CONFIG_FILE = Path(__file__).resolve().parents[2] / "config.test.yaml"
|
||||
@@ -21,6 +22,7 @@ def _import_main_module(monkeypatch):
|
||||
|
||||
def test_app_import_smoke(monkeypatch) -> None:
|
||||
logging_bootstrap_calls: list[None] = []
|
||||
metrics_bootstrap_calls: list[object] = []
|
||||
tracing_bootstrap_calls: list[tuple[FastAPI, object]] = []
|
||||
|
||||
def fake_configure_logging() -> None:
|
||||
@@ -29,7 +31,11 @@ def test_app_import_smoke(monkeypatch) -> None:
|
||||
def fake_configure_tracing(app: FastAPI, observability: object) -> None:
|
||||
tracing_bootstrap_calls.append((app, observability))
|
||||
|
||||
def fake_configure_metrics(observability: object) -> None:
|
||||
metrics_bootstrap_calls.append(observability)
|
||||
|
||||
monkeypatch.setattr(logging_module, "configure_logging", fake_configure_logging)
|
||||
monkeypatch.setattr(metrics_module, "configure_metrics", fake_configure_metrics)
|
||||
monkeypatch.setattr(tracing_module, "configure_tracing", fake_configure_tracing)
|
||||
main_module = _import_main_module(monkeypatch)
|
||||
|
||||
@@ -39,6 +45,7 @@ def test_app_import_smoke(monkeypatch) -> None:
|
||||
route.path for route in main_module.app.routes
|
||||
}
|
||||
assert logging_bootstrap_calls == [None]
|
||||
assert metrics_bootstrap_calls == [main_module.app.state.settings.observability]
|
||||
assert tracing_bootstrap_calls == [
|
||||
(main_module.app, main_module.app.state.settings.observability)
|
||||
]
|
||||
@@ -47,6 +54,7 @@ def test_app_import_smoke(monkeypatch) -> None:
|
||||
|
||||
def test_app_created_with_provided_settings(monkeypatch) -> None:
|
||||
logging_bootstrap_calls: list[None] = []
|
||||
metrics_bootstrap_calls: list[object] = []
|
||||
tracing_bootstrap_calls: list[tuple[FastAPI, object]] = []
|
||||
|
||||
def fake_configure_logging() -> None:
|
||||
@@ -55,7 +63,11 @@ def test_app_created_with_provided_settings(monkeypatch) -> None:
|
||||
def fake_configure_tracing(app: FastAPI, observability: object) -> None:
|
||||
tracing_bootstrap_calls.append((app, observability))
|
||||
|
||||
def fake_configure_metrics(observability: object) -> None:
|
||||
metrics_bootstrap_calls.append(observability)
|
||||
|
||||
monkeypatch.setattr(logging_module, "configure_logging", fake_configure_logging)
|
||||
monkeypatch.setattr(metrics_module, "configure_metrics", fake_configure_metrics)
|
||||
monkeypatch.setattr(tracing_module, "configure_tracing", fake_configure_tracing)
|
||||
main_module = _import_main_module(monkeypatch)
|
||||
monkeypatch.setattr(config_module, "TEST_CONFIG_FILE", str(TEST_CONFIG_FILE))
|
||||
@@ -65,6 +77,10 @@ def test_app_created_with_provided_settings(monkeypatch) -> None:
|
||||
|
||||
assert instance.state.settings is settings
|
||||
assert logging_bootstrap_calls == [None, None]
|
||||
assert metrics_bootstrap_calls == [
|
||||
main_module.app.state.settings.observability,
|
||||
settings.observability,
|
||||
]
|
||||
assert tracing_bootstrap_calls == [
|
||||
(main_module.app, main_module.app.state.settings.observability),
|
||||
(instance, settings.observability),
|
||||
|
||||
Reference in New Issue
Block a user