From 6a71812c39bd652e62c9c700d6bd84ab92ae71b9 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 18 Jun 2026 09:18:05 +0000 Subject: [PATCH] Additional unit tests --- src/backend/InvenTree/stock/api.py | 8 ++++++-- src/backend/InvenTree/stock/test_api.py | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 9da9e78cdf..536398cb85 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -1580,7 +1580,7 @@ class StockTrackingFilter(FilterSet): class StockTrackingList( - SerializerContextMixin, DataExportViewMixin, OutputOptionsMixin, ListAPI + SerializerContextMixin, DataExportViewMixin, OutputOptionsMixin, ListCreateAPI ): """API endpoint for list view of StockItemTracking objects. @@ -1673,7 +1673,11 @@ class StockTrackingList( serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) - serializer.save(user=request.user) + stock_item = serializer.validated_data['item'] + deltas = dict(serializer.validated_data.get('deltas') or {}) + deltas['quantity'] = float(stock_item.quantity) + + serializer.save(user=request.user, deltas=deltas) headers = self.get_success_headers(serializer.data) return Response( diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py index 4299cfa83c..c887d1bfe9 100644 --- a/src/backend/InvenTree/stock/test_api.py +++ b/src/backend/InvenTree/stock/test_api.py @@ -2891,6 +2891,25 @@ class StockTrackingTest(StockAPITestCase): assert_fnc=lambda x: x.data['results'][0], ) + def test_create_manual_entry(self): + """Test that a manual stock tracking entry can be created via the API.""" + url = self.get_url() + stock_item = StockItem.objects.first() + + response = self.post( + url, + {'item': stock_item.pk, 'notes': 'Manual tracking entry'}, + expected_code=201, + ) + + entry = StockItemTracking.objects.get(pk=response.data['pk']) + + # user = request.user + self.assertEqual(entry.user, self.user) + + # quantity = StockItem.quantity + self.assertEqual(float(entry.deltas['quantity']), float(stock_item.quantity)) + class StockAssignTest(StockAPITestCase): """Unit tests for the stock assignment API endpoint, where stock items are manually assigned to a customer."""