feat(tests): add comprehensive unit test suite (v1.4.0)
- Add 38 unit tests covering fw_client, recipes, lists, and server modules - Test error handling: top-level ex/un, nested a00.un.un/a00.ex.ex, successful responses - Test ingredients_parsed parser: newlines, empty lines, commas, headings - Test list name translation: SYS-CAT-SHOPPINGLIST, SYS-CAT-TODOS, unknown names - Test date validation: ISO YYYY-MM-DD format enforcement - Test error response helper: JSON format, Unicode, special characters - All tests use unittest.mock (stdlib), no external mocking libraries - No API calls — all HTTP interactions mocked - Framework: pytest with asyncio support - Run: uv run pytest tests/test_unit.py -v Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
This project follows Semantic Versioning (SemVer).
|
This project follows Semantic Versioning (SemVer).
|
||||||
Breaking changes (removed tools, changed parameters) increment the major version.
|
Breaking changes (removed tools, changed parameters) increment the major version.
|
||||||
|
|
||||||
|
## [1.4.0] – 2026-04-17
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Unit test suite** (`tests/test_unit.py`) — comprehensive tests for core modules
|
||||||
|
- `fw_client.py`: Error handling (top-level `ex`/`un`, nested `a00.un.un`/`a00.ex.ex`, successful responses)
|
||||||
|
- `recipes.py`: `ingredients_parsed` parser (newline handling, empty lines, headings, commas)
|
||||||
|
- `lists.py`: System list name translation (SYS-CAT-SHOPPINGLIST, SYS-CAT-TODOS, unknown names)
|
||||||
|
- `server.py`: `_validate_date()` (ISO YYYY-MM-DD validation, format errors)
|
||||||
|
- `server.py`: `_err()` helper (JSON response format, Unicode, special characters)
|
||||||
|
- All tests use `unittest.mock` (stdlib, no external dependencies)
|
||||||
|
- Tests run without API access; all HTTP calls are mocked
|
||||||
|
- Framework: pytest with asyncio support
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
- Run tests: `uv run pytest tests/test_unit.py -v`
|
||||||
|
- No breaking changes; release is testing infrastructure only
|
||||||
|
|
||||||
## [1.3.1] – 2026-04-17
|
## [1.3.1] – 2026-04-17
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "mcp-familywall"
|
name = "mcp-familywall"
|
||||||
version = "1.3.1"
|
version = "1.4.0"
|
||||||
description = "MCP server for Family Wall — manage your family's circles, lists, tasks, recipes, and meal plan via Claude"
|
description = "MCP server for Family Wall — manage your family's circles, lists, tasks, recipes, and meal plan via Claude"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.12"
|
requires-python = ">=3.12"
|
||||||
|
|||||||
Reference in New Issue
Block a user