"""IMP-45 (#74) u6 — subprocess smoke for the slide-level CSS override axis. End-to-end guard that the ``slide_overrides.css`` frontmatter axis added in u2 propagates through the pipeline (u4) and lands in ``final.html`` via :func:`src.slide_css_injector.inject_slide_css` (u3). The fixture is the new ``slide_overrides.css`` frontmatter block in ``samples/mdx_batch/04.mdx`` (u6 migration of the legacy frontend-only ``MDX04_DEFAULT_OVERRIDE_CSS`` constant). The pipeline is spawned via ``python -m src.phase_z2_pipeline 04.mdx `` so the assertion applies to the on-disk artifact CI / CLI / regression all observe, not to a live iframe view. The subprocess returncode is intentionally NOT asserted: mdx04 has known downstream issues (see ``test_pipeline_smoke_imp85.py`` — ``test_mdx04_no_longer_emits_imp85_crash_signature``) that are tracked on a separate axis. Step 13 runs before the downstream failure surface, so ``final.html`` is written with the injected slide CSS marker regardless. The test asserts ``final.html`` exists and contains both the IMP-45 sentinel marker and a distinctive CSS substring from the migrated frontmatter block. """ from __future__ import annotations import subprocess import sys import uuid from pathlib import Path REPO_ROOT = Path(__file__).resolve().parents[1] SAMPLES_DIR = REPO_ROOT / "samples" / "mdx_batch" RUNS_DIR = REPO_ROOT / "data" / "runs" # IMP-45 (#74) u3 marker sentinel emitted by # :func:`src.slide_css_injector.inject_slide_css` around the injected # ``