diff options
Diffstat (limited to 'kitchen')
| -rw-r--r-- | kitchen/tests.py | 13 | ||||
| -rw-r--r-- | kitchen/views.py | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/kitchen/tests.py b/kitchen/tests.py index 9ce9098..f3f68e2 100644 --- a/kitchen/tests.py +++ b/kitchen/tests.py @@ -224,6 +224,19 @@ class BulkAddApiTests(_ApiTestCase): self.assertEqual(rows.count(), 1) self.assertEqual(rows.first().state, "in") + def test_tolerates_null_unit_and_quantity(self): + # An MCP client may send unit/quantity as null for unknown items. + r = self.client.post( + "/api/bulk-pantry-add/", + {"items": [{"ingredient_name": "pork mince", "location": "fridge", + "unit": None, "quantity": None}]}, + format="json", + ) + self.assertEqual(r.status_code, 201) + self.assertTrue( + PantryItem.objects.filter(ingredient__name="pork mince", location="fridge").exists() + ) + class WhatCanICookApiTests(_ApiTestCase): def setUp(self): 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 |
