From eeeb1c5b34c058f2c1a7ea2f3c6b179f503d2aa4 Mon Sep 17 00:00:00 2001 From: Tom Flux Date: Tue, 23 Jun 2026 21:24:09 +0100 Subject: Fix bulk-pantry-add crash on null unit (found in live MCP testing) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit End-to-end testing (MCP client -> FastMCP -> Django) surfaced a 500: adding an item with an explicit `unit: null` (as add_to_pantry sends for items without a unit) hit a NOT NULL violation, because `item_data.get("unit", "items")` returns None when the key is present. - views.bulk_pantry_add: `item_data.get("unit") or "items"` — tolerate null/empty unit. - mcp_server add_to_pantry: omit quantity/unit from the payload when unset, so the API applies its own defaults. - test: bulk-add with unit/quantity = null returns 201 (25 pass). Co-Authored-By: Claude Opus 4.8 --- kitchen/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kitchen/views.py') diff --git a/kitchen/views.py b/kitchen/views.py index 5fdf041..882f2ef 100644 --- a/kitchen/views.py +++ b/kitchen/views.py @@ -576,7 +576,7 @@ def bulk_pantry_add(request): name = item_data.get("ingredient_name", "").strip() qty_raw = item_data.get("quantity") quantity = int(qty_raw) if qty_raw not in (None, "") else None - unit = item_data.get("unit", "items") + unit = item_data.get("unit") or "items" # tolerate null/empty location = item_data.get("location", "fridge") expiry_days = item_data.get("expiry_days") # optional override -- cgit v1.2.3