Files
EOS/docs/development/pr-drafts/measurement-json-reload.md
T

1.6 KiB

fix(measurement): restore JSON records into the existing singleton

Target: Akkudoktor-EOS/EOS:main. Local branch: fix/measurement-json-reload. Local head: dba0c9c (based on main 7ebe6d7). Status: locally ready for review; not pushed or published.

Proposed PR body

When measurement persistence falls back to JSON, loading a saved file reports success but does not restore its records: validating a second Measurement returns the existing singleton. Parse and validate the individual records before inserting them into that singleton. Invalid files now return False instead of reporting success.

Regression coverage checks round trips, timestamp preservation, repeated loading, merging with existing timestamps, malformed files without partial validation writes, and database-provider precedence. Four regression cases fail on unchanged main. With the fix, all 49 measurement tests pass.

Validation: python -m pytest tests/test_measurement_file_restore.py tests/test_measurement.py -q; Ruff check and format check of the changed source; git diff --check. Run locally on Windows/Python 3.11.9. The repository's Linux/Python 3.13 pinned CI and complete test suite have not run for this branch yet.

No settings or API schema changes. This fix is independent of #1256, #1305 and the GENETIC port.

Exact review scope

  • src/akkudoktoreos/measurement/measurement.py
  • tests/test_measurement_file_restore.py

Only these two files differ from the pinned main. Do not publish the integration branch as part of this PR. After explicit publication approval, push this named branch and open a PR against main; inspect CI before any merge.