from pathlib import Path import yaml PROJECT_ROOT = Path(__file__).resolve().parents[2] COMPOSE_FILE = PROJECT_ROOT / "docker-compose.yml" INFRA_README = PROJECT_ROOT / "infra" / "README.md" def _load_compose() -> dict: content = yaml.safe_load(COMPOSE_FILE.read_text(encoding="utf-8")) assert isinstance(content, dict) return content def test_compose_defines_required_services() -> None: compose = _load_compose() services = compose.get("services") assert isinstance(services, dict) assert {"app", "redis", "postgres"}.issubset(services.keys()) assert "postgres" in services["app"]["depends_on"] def test_smoke_command_sequence_is_documented() -> None: readme = INFRA_README.read_text(encoding="utf-8") assert "docker compose config" in readme assert "docker compose up -d redis" in readme assert "docker compose ps" in readme