diff --git a/InvenTree/company/fixtures/price_breaks.yaml b/InvenTree/company/fixtures/price_breaks.yaml index c16702a7a3..6616ab36b1 100644 --- a/InvenTree/company/fixtures/price_breaks.yaml +++ b/InvenTree/company/fixtures/price_breaks.yaml @@ -36,12 +36,12 @@ # Price breaks for ZERGLPHS - model: company.supplierpricebreak fields: - part: 3 - quantity: 5 + part: 4 + quantity: 25 cost: 8 - model: company.supplierpricebreak fields: - part: 3 + part: 4 quantity: 100 cost: 1.25 \ No newline at end of file diff --git a/InvenTree/company/tests.py b/InvenTree/company/tests.py index 56adb2f9ef..b100710fc4 100644 --- a/InvenTree/company/tests.py +++ b/InvenTree/company/tests.py @@ -2,8 +2,9 @@ from django.test import TestCase import os -from .models import Company, Contact, SupplierPart, SupplierPriceBreak +from .models import Company, Contact, SupplierPart from .models import rename_company_image +from part.models import Part class CompanySimpleTest(TestCase): @@ -67,13 +68,13 @@ class CompanySimpleTest(TestCase): self.assertTrue(self.acme0001.has_price_breaks) self.assertTrue(self.acme0002.has_price_breaks) - self.assertTrue(self.zerglphs.has_price_breaks) - self.assertFalse(self.zergm312.has_price_breaks) + self.assertTrue(self.zergm312.has_price_breaks) + self.assertFalse(self.zerglphs.has_price_breaks) self.assertEqual(self.acme0001.price_breaks.count(), 3) self.assertEqual(self.acme0002.price_breaks.count(), 2) - self.assertEqual(self.zerglphs.price_breaks.count(), 2) - self.assertEqual(self.zergm312.price_breaks.count(), 0) + self.assertEqual(self.zerglphs.price_breaks.count(), 0) + self.assertEqual(self.zergm312.price_breaks.count(), 2) def test_quantity_pricing(self): """ Simple test for quantity pricing """ @@ -92,6 +93,21 @@ class CompanySimpleTest(TestCase): self.assertEqual(p(45), 315) self.assertEqual(p(55), 68.75) + def test_part_pricing(self): + m2x4 = Part.objects.get(name='M2x4 LPHS') + + self.assertEqual(m2x4.get_price_info(10), "70.00000 - 75.00000") + self.assertEqual(m2x4.get_price_info(100), "125.00000 - 350.00000") + + pmin, pmax = m2x4.get_price_range(5) + self.assertEqual(pmin, 35) + self.assertEqual(pmax, 37.5) + + m3x12 = Part.objects.get(name='M3x12 SHCS') + + self.assertIsNone(m3x12.get_price_info(3)) + self.assertIsNotNone(m3x12.get_price_info(50)) + class ContactSimpleTest(TestCase): diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index af23b7484b..1d1d1b4fec 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -710,7 +710,7 @@ class Part(models.Model): if kwargs.get('image', True): if other.image: image_file = ContentFile(other.image.read()) - image_file.name = rename_part_image(self, 'test.png') + image_file.name = rename_part_image(self, other.image.url) self.image = image_file diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 486d7c5684..8e69c8681d 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -68,3 +68,7 @@ class PartTest(TestCase): barcode = self.R1.format_barcode() self.assertIn('InvenTree', barcode) self.assertIn(self.R1.name, barcode) + + def test_copy(self): + + self.R2.deepCopy(self.R1, image=True, bom=True)