mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 12:35:46 +00:00
Adds unit testing for order overdue status
This commit is contained in:
@ -272,6 +272,7 @@ class PurchaseOrder(Order):
|
||||
self.complete_date = datetime.now().date()
|
||||
self.save()
|
||||
|
||||
@property
|
||||
def is_overdue(self):
|
||||
"""
|
||||
Returns True if this PurchaseOrder is "overdue"
|
||||
|
@ -5,6 +5,8 @@ from django.test import TestCase
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db.utils import IntegrityError
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from company.models import Company
|
||||
from stock.models import StockItem
|
||||
from order.models import SalesOrder, SalesOrderLineItem, SalesOrderAllocation
|
||||
@ -40,6 +42,26 @@ class SalesOrderTest(TestCase):
|
||||
# Create a line item
|
||||
self.line = SalesOrderLineItem.objects.create(quantity=50, order=self.order, part=self.part)
|
||||
|
||||
def test_overdue(self):
|
||||
"""
|
||||
Tests for overdue functionality
|
||||
"""
|
||||
|
||||
today = datetime.now().date()
|
||||
|
||||
# By default, order is *not* overdue as the target date is not set
|
||||
self.assertFalse(self.order.is_overdue)
|
||||
|
||||
# Set target date in the past
|
||||
self.order.target_date = today - timedelta(days=5)
|
||||
self.order.save()
|
||||
self.assertTrue(self.order.is_overdue)
|
||||
|
||||
# Set target date in the future
|
||||
self.order.target_date = today + timedelta(days=5)
|
||||
self.order.save()
|
||||
self.assertFalse(self.order.is_overdue)
|
||||
|
||||
def test_empty_order(self):
|
||||
self.assertEqual(self.line.quantity, 50)
|
||||
self.assertEqual(self.line.allocated_quantity(), 0)
|
||||
|
@ -1,3 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from django.test import TestCase
|
||||
import django.core.exceptions as django_exceptions
|
||||
|
||||
@ -37,6 +41,24 @@ class OrderTest(TestCase):
|
||||
|
||||
self.assertEqual(str(line), "100 x ACME0001 from ACME (for PO0001 - ACME)")
|
||||
|
||||
def test_overdue(self):
|
||||
"""
|
||||
Test overdue status functionality
|
||||
"""
|
||||
|
||||
today = datetime.now().date()
|
||||
|
||||
order = PurchaseOrder.objects.get(pk=1)
|
||||
self.assertFalse(order.is_overdue)
|
||||
|
||||
order.target_date = today - timedelta(days=5)
|
||||
order.save()
|
||||
self.assertTrue(order.is_overdue)
|
||||
|
||||
order.target_date = today + timedelta(days=1)
|
||||
order.save()
|
||||
self.assertFalse(order.is_overdue)
|
||||
|
||||
def test_increment(self):
|
||||
|
||||
next_ref = PurchaseOrder.getNextOrderNumber()
|
||||
|
Reference in New Issue
Block a user