From 57fa091eb6c28a62811676de6fd1faab478402f2 Mon Sep 17 00:00:00 2001 From: demo-bot Date: Sun, 9 Aug 2026 16:01:00 +0000 Subject: [PATCH] decomposer: generate deliverable files for Define the service contract and project architecture for the FastAPI endpoint monitoring service.; Implement the typed monitor CRUD API and concurrency-safe in-memory state according to the service design.; Implement secure on-demand endpoint checks with status updates, latency measurement, robust error handling, and redacted structured logs.; Add operational API endpoints and environment-driven runtime configuration to the monitoring service.; Create automated tests for the monitoring service.; Package the service with Docker and developer documentation.; Validate the complete project. --- tests/conftest.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 4016ff0..78cdb21 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1 +1,25 @@ -# Env var setup that must run before app.config is imported. +import httpx +import pytest +from httpx import ASGITransport, AsyncClient + +from app.config import Settings +from app.main import create_app + + +@pytest.fixture +async def app(): + application = create_app(Settings(check_timeout_seconds=0.1)) + async with application.router.lifespan_context(application): + yield application + + +@pytest.fixture +async def client(app): + async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as value: + yield value + + +async def create_monitor(client: httpx.AsyncClient, url: str = "https://example.com/health") -> dict: + response = await client.post("/v1/monitors", json={"name": "website", "url": url}) + assert response.status_code == 201 + return response.json()