mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-30 12:36:45 +00:00
Unit tests for downloading PurchaseOrder data
This commit is contained in:
parent
a6be0b32c6
commit
0d078768fe
@ -171,7 +171,7 @@ class InvenTreeAPITestCase(APITestCase):
|
|||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
def download_file(self, url, data, expected_code=None, expected_fn=None, decode=False):
|
def download_file(self, url, data, expected_code=None, expected_fn=None, decode=True):
|
||||||
"""
|
"""
|
||||||
Download a file from the server, and return an in-memory file
|
Download a file from the server, and return an in-memory file
|
||||||
"""
|
"""
|
||||||
|
@ -325,6 +325,62 @@ class PurchaseOrderTest(OrderTest):
|
|||||||
self.assertEqual(order.get_metadata('yam'), 'yum')
|
self.assertEqual(order.get_metadata('yam'), 'yum')
|
||||||
|
|
||||||
|
|
||||||
|
class PurchaseOrderDownloadTest(OrderTest):
|
||||||
|
"""Unit tests for downloading PurchaseOrder data via the API endpoint"""
|
||||||
|
|
||||||
|
required_cols = [
|
||||||
|
'id',
|
||||||
|
'line_items',
|
||||||
|
'description',
|
||||||
|
'issue_date',
|
||||||
|
'notes',
|
||||||
|
'reference',
|
||||||
|
'status',
|
||||||
|
'supplier_reference',
|
||||||
|
]
|
||||||
|
|
||||||
|
excluded_cols = [
|
||||||
|
'metadata',
|
||||||
|
]
|
||||||
|
|
||||||
|
def test_download_wrong_format(self):
|
||||||
|
"""Incorrect format should default raise an error"""
|
||||||
|
|
||||||
|
url = reverse('api-po-list')
|
||||||
|
|
||||||
|
with self.assertRaises(ValueError):
|
||||||
|
self.download_file(
|
||||||
|
url,
|
||||||
|
{
|
||||||
|
'export': 'xyz',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_download_csv(self):
|
||||||
|
"""Download PurchaseOrder data as .csv"""
|
||||||
|
|
||||||
|
with self.download_file(
|
||||||
|
reverse('api-po-list'),
|
||||||
|
{
|
||||||
|
'export': 'csv',
|
||||||
|
},
|
||||||
|
expected_code=200,
|
||||||
|
expected_fn='InvenTree_PurchaseOrders.csv',
|
||||||
|
) as fo:
|
||||||
|
|
||||||
|
data = self.process_csv(
|
||||||
|
fo,
|
||||||
|
required_cols=self.required_cols,
|
||||||
|
excluded_cols=self.excluded_cols,
|
||||||
|
required_rows=models.PurchaseOrder.objects.count()
|
||||||
|
)
|
||||||
|
|
||||||
|
for row in data:
|
||||||
|
order = models.PurchaseOrder.objects.get(pk=row['id'])
|
||||||
|
|
||||||
|
self.assertEqual(order.description, row['description'])
|
||||||
|
self.assertEqual(order.reference, row['reference'])
|
||||||
|
|
||||||
class PurchaseOrderReceiveTest(OrderTest):
|
class PurchaseOrderReceiveTest(OrderTest):
|
||||||
"""
|
"""
|
||||||
Unit tests for receiving items against a PurchaseOrder
|
Unit tests for receiving items against a PurchaseOrder
|
||||||
@ -925,16 +981,15 @@ class SalesOrderDownloadTest(OrderTest):
|
|||||||
url = reverse('api-so-list')
|
url = reverse('api-so-list')
|
||||||
|
|
||||||
# Download .xls file
|
# Download .xls file
|
||||||
fo = self.download_file(
|
with self.download_file(
|
||||||
url,
|
url,
|
||||||
{
|
{
|
||||||
'export': 'xls',
|
'export': 'xls',
|
||||||
},
|
},
|
||||||
expected_code=200,
|
expected_code=200,
|
||||||
expected_fn='InvenTree_SalesOrders.xls',
|
expected_fn='InvenTree_SalesOrders.xls',
|
||||||
)
|
) as fo:
|
||||||
|
self.assertTrue(isinstance(fo, io.BytesIO))
|
||||||
self.assertTrue(isinstance(fo, io.BytesIO))
|
|
||||||
|
|
||||||
def test_download_csv(self):
|
def test_download_csv(self):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user