- open_or_save_calendar(): emit one VEVENT per reminder instead of a single
event with VALARM blocks. Dates come from compute_reminder_offsets(), spread
across the check-alive period, with the LAST event one day before the
locktime. Unique UID per event (bal-<wallet>-<offset>d) and numbered
summaries ' (reminder N/total)'.
- Removed the now-unused create_alarms() method (no more VALARM).
- Default save filename changed from will_event.ics to BAL_will_event.ics.
- common.py: added timedelta to the datetime import.
- plugin_base.py: updated the NUM_REMINDERS comment for the new behaviour.
- tests: replaced the VALARM E1 test with test_e1_build_separate_events_for_giovanna.
- Bumped version to 0.3.7 (4 files) and added CHANGELOG entry #13.
Tests: 239 passed. ruff: no new errors.
Add tests/test_group_e_mock_giovanna7.py (22 GUI-free tests) driven by a
self-contained fake wallet named giovanna7, covering four areas:
- E1 calendar/.ics: reminder-offset distribution (compute_reminder_offsets),
VALARM/TRIGGER shape (TRIGGER;RELATED=END:-P{n}D), iCalendar escaping, and
temporary .ics file creation.
- E2 inheritance/states: loading/adding/removing heirs (Heirs), WillItem
status transitions (VALID->COMPLETE, INVALIDATED clears VALID, PUSHED clears
PUSH_FAIL), Will.only_valid, and heir-change detection.
- E3 connectivity: stubbed get_info_task proving ping_servers_parallel runs
concurrently, fires on_each once per server with the right ok flag, and
writes results back; plus empty-mapping no-op.
- E4 will-executor: is_selected default/set, get_willexecutor_transactions
filtering (only VALID+COMPLETE+not-PUSHED+selected; force re-includes PUSHED),
and compute_id.
CHANGELOG: add entry #9. ruff clean; full suite 239 passed.