Persist material efficiency snapshots

This commit is contained in:
2026-09-06 08:23:28 +02:00
parent c411581a1a
commit ed0e20a04b
10 changed files with 851 additions and 32 deletions
+6 -4
View File
@@ -152,14 +152,15 @@ def test_temporal_regression_and_successive_feedback():
assert first.good_quantity_m2 == 800
def test_naive_feedback_requires_explicit_timezone_and_preserves_source():
def test_naive_feedback_requires_explicit_timezone_and_returns_instant():
naive = datetime(2026, 9, 4, 12, 5)
status = replace(STATUS, feedback_timestamp=naive)
with pytest.raises(ValueError, match='explicit erp_timezone'):
service().evaluate(status)
subject = service(erp_timezone=ZoneInfo('Europe/Berlin'))
result = subject.evaluate(status)
assert result.erp_feedback_timestamp == naive
assert result.erp_feedback_timestamp == FEEDBACK
assert status.feedback_timestamp == naive
assert subject.materials.latest_at_or_before.call_args.kwargs['timestamp'] == FEEDBACK
@@ -171,10 +172,11 @@ def test_dst_gap_and_overlap_rejected(timestamp):
)
def test_aware_feedback_preserves_offset():
def test_aware_feedback_returns_utc():
timestamp = FEEDBACK.astimezone(ZoneInfo('Europe/Berlin'))
result = service().evaluate(replace(STATUS, feedback_timestamp=timestamp))
assert result.erp_feedback_timestamp is timestamp
assert result.erp_feedback_timestamp == timestamp
assert result.erp_feedback_timestamp.tzinfo is UTC
def test_database_failure_propagates():