"""mailu — health/readiness functional test (Phase 2). SOURCE: no recipe-maintainer corpus exists for mailu (P2 vacuous — see PARITY.md). The nginx front serves `/` (301 → /webmail) once the stack is up; this is the canonical "is mailu serving" signal. """ from __future__ import annotations import os import sys sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "runner")) from harness import http as harness_http # noqa: E402 def test_mailu_front_serves(live_app): url = f"https://{live_app}/" status, _ = harness_http.retry_http_get( url, expect_status=(200, 301, 302), max_wait=120, interval=5 ) assert status in (200, 301, 302), f"GET {url} HTTP {status} (mailu front not serving)"