From d6341f1f2d9f6d53b7825f5306e7204707cc01ee Mon Sep 17 00:00:00 2001 From: hobbyistz <293619914+hobbyistz@users.noreply.github.com> Date: Mon, 21 Sep 2026 21:04:53 -0400 Subject: [PATCH] test: run the clean-clone reproduce smoke for one SKU with a realistic budget The scheduled live gate shelled ./reproduce for all four SKUs with a five-minute budget written when the default was the receipts check. The default is now the full re-derivation over the retained history window, which takes well over five minutes per SKU on a hosted runner, so the smoke timed out daily. The in-process live tests already re-derive every SKU; this check exists to prove the launch command itself. Run it for one SKU and give it half an hour of headroom. Signed-off-by: hobbyistz <293619914+hobbyistz@users.noreply.github.com> --- tests/live/test_published_front_live.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/live/test_published_front_live.py b/tests/live/test_published_front_live.py index bb39fe6..d211287 100644 --- a/tests/live/test_published_front_live.py +++ b/tests/live/test_published_front_live.py @@ -145,11 +145,13 @@ def test_live_day_file_satisfies_the_envelope_contract(sku, live_days): assert envelope["data"]["observations"], "day file carries no rows" -@pytest.mark.parametrize("sku", PUBLIC_SKUS) -def test_live_reproduce_verifies_the_published_record(sku, live_days, tmp_path): +def test_live_reproduce_verifies_the_published_record(live_days, tmp_path): # The whole clean-clone path: the launch command, no local copy, no # front configured, against the live record. Exit 0 only when every - # observation recomputed and matched. + # observation recomputed and matched. One SKU is enough here: the + # in-process tests above re-derive every SKU, and this check exists to + # prove the launch command itself, not to repeat that work four times. + sku = "h100" date, _ = live_days[sku] empty_data_dir = tmp_path / "no-local-record" empty_data_dir.mkdir() @@ -169,7 +171,10 @@ def test_live_reproduce_verifies_the_published_record(sku, live_days, tmp_path): env=env, capture_output=True, text=True, - timeout=300, + # The full re-derivation reads the whole retained history window + # first, so its runtime grows with retention and runs well past five + # minutes on a hosted runner. Half an hour is headroom, not a target. + timeout=1800, ) report = ( f"./reproduce {sku} {date} exited {result.returncode}\n"