Fix tests for stock serialization

This commit is contained in:
Oliver Walters 2019-08-29 07:37:44 +10:00
parent 4db345d0c2
commit 937bcd41d6
3 changed files with 8 additions and 7 deletions

View File

@ -67,7 +67,7 @@ class SerializeStockForm(forms.ModelForm):
""" Form for serializing a StockItem. """
destination = forms.ChoiceField(label='Destination', required=True, help_text='Destination for serialized stock (by default, will remain in current location)')
serial_numbers = forms.CharField(label='Serial numbers', required=True, help_text='Unique serial numbers (must match quantity)')
serial_numbers = forms.CharField(label='Serial numbers', required=True, help_text='Unique serial numbers (must match quantity)')
note = forms.CharField(label='Notes', required=False, help_text='Add transaction note (optional)')
def get_location_choices(self):

View File

@ -359,6 +359,7 @@ class StockItem(models.Model):
Brief automated note detailing a movement or quantity change.
"""
track = StockItemTracking.objects.create(
item=self,
title=title,
@ -373,7 +374,7 @@ class StockItem(models.Model):
track.save()
@transaction.atomic
def serializeStock(self, quantity, serials, user, notes=None, location=None):
def serializeStock(self, quantity, serials, user, notes='', location=None):
""" Split this stock item into unique serial numbers.
- Quantity can be less than or equal to the quantity of the stock item

View File

@ -264,24 +264,24 @@ class StockTest(TestCase):
# Test serialization of non-serializable part
item = StockItem.objects.get(pk=1234)
with self.assertRaises(ValueError):
with self.assertRaises(ValidationError):
item.serializeStock(5, [1, 2, 3, 4, 5], self.user)
# Pick a StockItem which can actually be serialized
item = StockItem.objects.get(pk=100)
# Try an invalid quantity
with self.assertRaises(ValueError):
with self.assertRaises(ValidationError):
item.serializeStock("k", [], self.user)
with self.assertRaises(ValueError):
with self.assertRaises(ValidationError):
item.serializeStock(-1, [], self.user)
# Try invalid serial numbers
with self.assertRaises(ValueError):
with self.assertRaises(ValidationError):
item.serializeStock(3, [1, 2, 'k'], self.user)
with self.assertRaises(ValueError):
with self.assertRaises(ValidationError):
item.serializeStock(3, "hello", self.user)
def test_seiralize_stock_valid(self):