mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-01 11:10:54 +00:00
Unit test speed improvements (#4463)
* Unit test speed improvements - Move from insantiating data in setUp to setUpTestData * Update UserMixin class for API testing * Bunch of test updates * Further test updates * Test fixes * Add allowances for exchange rate server not responding * Fixes for group role test
This commit is contained in:
@ -1408,25 +1408,33 @@ class SalesOrderLineItemTest(OrderTest):
|
||||
|
||||
LIST_URL = reverse('api-so-line-list')
|
||||
|
||||
def setUp(self):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
"""Init routine for this unit test class"""
|
||||
super().setUp()
|
||||
super().setUpTestData()
|
||||
|
||||
# List of salable parts
|
||||
parts = Part.objects.filter(salable=True)
|
||||
|
||||
lines = []
|
||||
|
||||
# Create a bunch of SalesOrderLineItems for each order
|
||||
for idx, so in enumerate(models.SalesOrder.objects.all()):
|
||||
|
||||
for part in parts:
|
||||
models.SalesOrderLineItem.objects.create(
|
||||
order=so,
|
||||
part=part,
|
||||
quantity=(idx + 1) * 5,
|
||||
reference=f"Order {so.reference} - line {idx}",
|
||||
lines.append(
|
||||
models.SalesOrderLineItem(
|
||||
order=so,
|
||||
part=part,
|
||||
quantity=(idx + 1) * 5,
|
||||
reference=f"Order {so.reference} - line {idx}",
|
||||
)
|
||||
)
|
||||
|
||||
self.url = reverse('api-so-line-list')
|
||||
# Bulk create
|
||||
models.SalesOrderLineItem.objects.bulk_create(lines)
|
||||
|
||||
cls.url = reverse('api-so-line-list')
|
||||
|
||||
def test_so_line_list(self):
|
||||
"""Test list endpoint"""
|
||||
|
@ -25,33 +25,34 @@ class SalesOrderTest(TestCase):
|
||||
'users',
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
"""Initial setup for this set of unit tests"""
|
||||
# Create a Company to ship the goods to
|
||||
self.customer = Company.objects.create(name="ABC Co", description="My customer", is_customer=True)
|
||||
cls.customer = Company.objects.create(name="ABC Co", description="My customer", is_customer=True)
|
||||
|
||||
# Create a Part to ship
|
||||
self.part = Part.objects.create(name='Spanner', salable=True, description='A spanner that I sell')
|
||||
cls.part = Part.objects.create(name='Spanner', salable=True, description='A spanner that I sell')
|
||||
|
||||
# Create some stock!
|
||||
self.Sa = StockItem.objects.create(part=self.part, quantity=100)
|
||||
self.Sb = StockItem.objects.create(part=self.part, quantity=200)
|
||||
cls.Sa = StockItem.objects.create(part=cls.part, quantity=100)
|
||||
cls.Sb = StockItem.objects.create(part=cls.part, quantity=200)
|
||||
|
||||
# Create a SalesOrder to ship against
|
||||
self.order = SalesOrder.objects.create(
|
||||
customer=self.customer,
|
||||
cls.order = SalesOrder.objects.create(
|
||||
customer=cls.customer,
|
||||
reference='SO-1234',
|
||||
customer_reference='ABC 55555'
|
||||
)
|
||||
|
||||
# Create a Shipment against this SalesOrder
|
||||
self.shipment = SalesOrderShipment.objects.create(
|
||||
order=self.order,
|
||||
cls.shipment = SalesOrderShipment.objects.create(
|
||||
order=cls.order,
|
||||
reference='SO-001',
|
||||
)
|
||||
|
||||
# Create a line item
|
||||
self.line = SalesOrderLineItem.objects.create(quantity=50, order=self.order, part=self.part)
|
||||
cls.line = SalesOrderLineItem.objects.create(quantity=50, order=cls.order, part=cls.part)
|
||||
|
||||
def test_so_reference(self):
|
||||
"""Unit tests for sales order generation"""
|
||||
|
Reference in New Issue
Block a user