_drop_piece looked up plan.item(item.pid), but item.pid is a Placement id (pl2) while CutPlan.item() expects a CutItem id (ci2) — every drop raised StopIteration before validate/revert could run. Use the already-found placement's item_id (plan.item(p.item_id)) for the stock-compat check and message. Added tests/test_bom_window.py (offscreen QGraphicsScene): drop-overlap reverts without crashing, drop-onto-incompatible-stock reverts, and a valid move commits. 128 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| test_bom_window.py | ||
| test_cutlist.py | ||
| test_cutplan.py | ||
| test_driver.py | ||
| test_geometry.py | ||
| test_gui_controller.py | ||
| test_instructions.py | ||
| test_jigs.py | ||
| test_layout.py | ||
| test_scene.py | ||