Massaging unit tests

- Decimal fields are useful but VERY ANNOYING to use
- Needed to fix some test cases
This commit is contained in:
Oliver Walters 2019-11-19 08:59:56 +11:00
parent 400941c10f
commit 6e90ac367e
4 changed files with 22 additions and 4 deletions

View File

@ -52,6 +52,24 @@ def str2bool(text, test=True):
return str(text).lower() in ['0', 'n', 'no', 'none', 'f', 'false', 'off', ]
def decimal2string(d):
"""
Format a Decimal number as a string,
stripping out any trailing zeroes or decimal points.
Essentially make it look like a whole number if it is one.
Args:
d: A python Decimal object
Returns:
A string representation of the input number
"""
s = str(d)
return s.rstrip("0").rstrip(".")
def WrapWithQuotes(text, quote='"'):
""" Wrap the supplied text with quotes

View File

@ -1161,7 +1161,7 @@ class BomItem(models.Model):
return "{n} x {child} to make {parent}".format(
parent=self.part.full_name,
child=self.sub_part.full_name,
n=self.quantity)
n=helpers.decimal2string(self.quantity))
def get_overage_quantity(self, quantity):
""" Calculate overage quantity

View File

@ -123,7 +123,7 @@ class PartAPITest(APITestCase):
url = reverse('api-bom-item-detail', kwargs={'pk': 3})
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['quantity'], 25)
self.assertEqual(int(float(response.data['quantity'])), 25)
# Increase the quantity
data = response.data
@ -134,7 +134,7 @@ class PartAPITest(APITestCase):
# Check that the quantity was increased and a note added
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['quantity'], 57)
self.assertEqual(int(float(response.data['quantity'])), 57)
self.assertEqual(response.data['note'], 'Added a note')
def test_add_bom_item(self):

View File

@ -691,7 +691,7 @@ class StockItem(models.Model):
sn=self.serial)
else:
s = '{n} x {part}'.format(
n=self.quantity,
n=helpers.decimal2string(self.quantity),
part=self.part.full_name)
if self.location: