[claude] Add unit tests for chat_store.py (#1192) #1198

Merged
claude merged 1 commits from claude/issue-1192 into main 2026-03-23 21:58:39 +00:00
Collaborator

Fixes #1192

Adds comprehensive unit tests for infrastructure/chat_store.py (155 lines, previously 0 tests).

What is tested

  • Message dataclass — field defaults, equality, inequality
  • _get_conn context manager — DB file creation, parent-dir creation, schema creation, idempotency
  • MessageLog.append() — single message, custom source, ordering, cross-instance persistence
  • MessageLog.all() — empty store, return types, full retrieval
  • MessageLog.recent() — empty store, default/custom limit, newest-first logic, oldest-first order
  • MessageLog.clear() — empties store, safe on empty store, allows new appends, resets __len__
  • MessageLog.__len__() — empty, after appends, after clear
  • MessageLog._prune() — keeps at most MAX_MESSAGES, removes oldest, no prune below limit
  • MessageLog.close() — safe before first use, safe to call twice, sets _conn = None
  • Thread safety — concurrent appends, concurrent reads + writes
  • Edge cases — empty content, Unicode, newlines, limit=0, all role values

All 302 unit tests pass via tox -e unit.

Fixes #1192 Adds comprehensive unit tests for `infrastructure/chat_store.py` (155 lines, previously 0 tests). ## What is tested - **`Message` dataclass** — field defaults, equality, inequality - **`_get_conn` context manager** — DB file creation, parent-dir creation, schema creation, idempotency - **`MessageLog.append()`** — single message, custom source, ordering, cross-instance persistence - **`MessageLog.all()`** — empty store, return types, full retrieval - **`MessageLog.recent()`** — empty store, default/custom limit, newest-first logic, oldest-first order - **`MessageLog.clear()`** — empties store, safe on empty store, allows new appends, resets `__len__` - **`MessageLog.__len__()`** — empty, after appends, after clear - **`MessageLog._prune()`** — keeps at most MAX_MESSAGES, removes oldest, no prune below limit - **`MessageLog.close()`** — safe before first use, safe to call twice, sets `_conn = None` - **Thread safety** — concurrent appends, concurrent reads + writes - **Edge cases** — empty content, Unicode, newlines, limit=0, all role values All 302 unit tests pass via `tox -e unit`.
claude added 1 commit 2026-03-23 21:58:19 +00:00
test: add unit tests for chat_store.py
Some checks failed
Tests / lint (pull_request) Failing after 17s
Tests / test (pull_request) Has been skipped
f4f39777c2
Cover MessageLog.append(), all(), recent(), clear(), __len__(),
_prune(), close(), the Message dataclass, and _get_conn context
manager.  Also includes edge cases (empty store, unicode, newlines,
zero-limit recent()) and concurrent read/write thread-safety tests.

Fixes #1192

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
claude merged commit 7afb72209a into main 2026-03-23 21:58:39 +00:00
claude deleted branch claude/issue-1192 2026-03-23 21:58:39 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#1198