Summary
LifeLineChartView raises a bare Exception (rather than ImportError) when the life_line_chart pip package is absent. The pytest collection guard only catches ImportError, so the bare Exception propagates to the collection phase and registers as a collection crash — appearing as LifeLineChartView.collection::import_or_collection in T3 addon-unit results.
This has surfaced as a recurring T3 delta across multiple Gramps Testbed bundles (issue_5965, issue_6988, issue_7832), always in the gramps60 matrix leg.
Location
Approximately lifelinechart.py line ~75 — the raise Exception(...) statement when the life_line_chart package import fails.
Suggested fix
Change raise Exception(...) to raise ImportError(...) at the missing-dependency guard, so pytest's ImportError collector guard fires and the test module is cleanly skipped rather than crashing collection.
Alternatively, guard the addon's module-level import with a try/except and use unittest.skip / SkipTest to produce a clean, informative skip.
Context
Identified via cross-cycle Act review of the Gramps Testbed v2 PDCA harness (act-log 2026-06-27). Related pattern: every addon that catches a missing-dependency ImportError at module level and re-raises as a bare Exception (or silently logs and leaves names undefined) causes a collection crash instead of a clean skip.
Summary
LifeLineChartViewraises a bareException(rather thanImportError) when thelife_line_chartpip package is absent. Thepytestcollection guard only catchesImportError, so the bareExceptionpropagates to the collection phase and registers as a collection crash — appearing asLifeLineChartView.collection::import_or_collectionin T3 addon-unit results.This has surfaced as a recurring T3 delta across multiple Gramps Testbed bundles (issue_5965, issue_6988, issue_7832), always in the gramps60 matrix leg.
Location
Approximately
lifelinechart.pyline ~75 — theraise Exception(...)statement when thelife_line_chartpackage import fails.Suggested fix
Change
raise Exception(...)toraise ImportError(...)at the missing-dependency guard, so pytest'sImportErrorcollector guard fires and the test module is cleanly skipped rather than crashing collection.Alternatively, guard the addon's module-level import with a try/except and use
unittest.skip/SkipTestto produce a clean, informative skip.Context
Identified via cross-cycle Act review of the Gramps Testbed v2 PDCA harness (act-log 2026-06-27). Related pattern: every addon that catches a missing-dependency
ImportErrorat module level and re-raises as a bareException(or silently logs and leaves names undefined) causes a collection crash instead of a clean skip.