From ea9e76d090cb3049cfc1655c37d92b0673d406ce Mon Sep 17 00:00:00 2001 From: Jeff Smith Date: Sun, 19 Apr 2026 11:49:18 -0600 Subject: [PATCH] feat(logging): seed template_entry_updated event (#27) --- src/quartermaster/service.py | 7 +++++++ tests/test_logging.py | 21 ++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/quartermaster/service.py b/src/quartermaster/service.py index 674e2d2..2bc6d2a 100644 --- a/src/quartermaster/service.py +++ b/src/quartermaster/service.py @@ -1,11 +1,14 @@ from __future__ import annotations +import logging from dataclasses import dataclass from decimal import Decimal from sqlalchemy import select from sqlalchemy.orm import Session +logger = logging.getLogger("quartermaster.service") + from quartermaster.groups import ( GROUP_DEFAULT_OPEN, GROUP_LABELS, @@ -134,6 +137,10 @@ def update_entry( entry.notes = _clean_notes(notes) # type: ignore[arg-type] db.commit() db.refresh(entry) + logger.info( + "updated template entry", + extra={"event": "template_entry_updated", "entry_id": entry.id}, + ) return entry diff --git a/tests/test_logging.py b/tests/test_logging.py index c90036a..b606723 100644 --- a/tests/test_logging.py +++ b/tests/test_logging.py @@ -8,7 +8,7 @@ from decimal import Decimal import pytest -from quartermaster import month_service +from quartermaster import month_service, service from quartermaster.logging_config import LOG_CONFIG from quartermaster.models import Section @@ -169,3 +169,22 @@ def test_delete_posting_logs_posting_deleted_event(db, caplog): events = [r for r in caplog.records if getattr(r, "event", None) == "posting_deleted"] assert len(events) == 1 + + +def test_update_entry_logs_template_entry_updated_event(db, caplog): + from quartermaster.models import Entry + entry = Entry(section=Section.fixed_bill, name="Power", amount=Decimal("50.00")) + db.add(entry) + db.commit() + db.refresh(entry) + + caplog.set_level(logging.INFO, logger="quartermaster") + + service.update_entry(db, entry.id, amount=Decimal("55.00")) + + events = [ + r for r in caplog.records + if getattr(r, "event", None) == "template_entry_updated" + ] + assert len(events) == 1 + assert events[0].entry_id == entry.id