From d01201539b9a1480c25b4c1d9464d6c5d90fbf19 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 21 Aug 2026 15:11:25 -0400 Subject: [PATCH] =?UTF-8?q?test(ledger):=20derive=20summary=20expectation?= =?UTF-8?q?=20follows=20#2872=20=E2=80=94=20dup=20group=20before=20name=20?= =?UTF-8?q?group?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- tests/test_integration_shape_classify.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_integration_shape_classify.py b/tests/test_integration_shape_classify.py index c4f0f32..8b74470 100644 --- a/tests/test_integration_shape_classify.py +++ b/tests/test_integration_shape_classify.py @@ -531,7 +531,11 @@ async def test_derive_groups_land_on_rows_and_in_the_summary(seeded): summary = proposal_summary(await live_rows(pid)) assert summary["proposed"] == 1 - assert [g["group"] for g in summary["derive_groups"]][0] == "name:css:card" + # #2872: the body-identical group (a real copy) outranks the bigger name + # group (usually convention), even at size 2 vs 3. + order = [g["group"] for g in summary["derive_groups"]] + assert order[0].startswith("dup:") and order[1] == "name:css:card" + assert summary["derive_groups"][0]["files"] == 2 assert summary["derive_groups"][0]["label"] == ".card" assert summary["derive_groups"][0]["size"] == 3