InvenTree/InvenTree/order/test_views.py

93 lines
2.6 KiB
Python

"""Unit tests for Order views (see views.py)."""
from django.urls import reverse
from InvenTree.unit_test import InvenTreeTestCase
class OrderViewTestCase(InvenTreeTestCase):
"""Base unit test class for order views."""
fixtures = [
'category',
'part',
'bom',
'location',
'company',
'supplier_part',
'stock',
'order',
'sales_order',
'return_order',
]
roles = [
'purchase_order.change',
'purchase_order.add',
'purchase_order.delete',
'sales_order.change',
'sales_order.add',
'sales_order.delete',
'return_order.change',
'return_order.add',
'return_order.delete',
]
class PurchaseOrderListTest(OrderViewTestCase):
"""Unit tests for the PurchaseOrder index page."""
def test_order_list(self):
"""Tests for the PurchaseOrder index page."""
response = self.client.get(reverse('purchase-order-index'))
self.assertEqual(response.status_code, 200)
class PurchaseOrderTests(OrderViewTestCase):
"""Tests for PurchaseOrder views."""
def test_detail_view(self):
"""Retrieve PO detail view."""
response = self.client.get(reverse('po-detail', args=(1,)))
self.assertEqual(response.status_code, 200)
keys = response.context.keys()
self.assertIn('PurchaseOrderStatus', keys)
def test_po_export(self):
"""Export PurchaseOrder."""
response = self.client.get(
reverse('po-export', args=(1,)), HTTP_X_REQUESTED_WITH='XMLHttpRequest'
)
# Response should be streaming-content (file download)
self.assertIn('streaming_content', dir(response))
class SalesOrderViews(OrderViewTestCase):
"""Unit tests for the SalesOrder pages."""
def test_index(self):
"""Test the SalesOrder index page."""
response = self.client.get(reverse('sales-order-index'))
self.assertEqual(response.status_code, 200)
def test_detail(self):
"""Test SalesOrder detail view."""
response = self.client.get(reverse('so-detail', args=(1,)))
self.assertEqual(response.status_code, 200)
class ReturnOrderVIews(OrderViewTestCase):
"""Unit tests for the ReturnOrder pages."""
def test_index(self):
"""Test the ReturnOrder index page."""
response = self.client.get(reverse('return-order-index'))
self.assertEqual(response.status_code, 200)
def test_detail(self):
"""Test ReturnOrder detail view."""
response = self.client.get(reverse('return-order-detail', args=(1,)))
self.assertEqual(response.status_code, 200)