mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-03 22:55:43 +00:00 
			
		
		
		
	Massaging unit tests
- Decimal fields are useful but VERY ANNOYING to use - Needed to fix some test cases
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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):
 | 
			
		||||
 
 | 
			
		||||
@@ -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:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user