Additional unit tests

This commit is contained in:
Oliver Walters 2026-06-18 09:18:05 +00:00
parent ca3b30ab7d
commit 6a71812c39
2 changed files with 25 additions and 2 deletions

View File

@ -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(

View File

@ -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."""