mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 04:25:42 +00:00
Adds unit testing for order overdue status
This commit is contained in:
@ -225,22 +225,19 @@ class Build(MPTTModel):
|
||||
blank=True, help_text=_('Extra build notes')
|
||||
)
|
||||
|
||||
@property
|
||||
def is_overdue(self):
|
||||
"""
|
||||
Returns true if this build is "overdue":
|
||||
|
||||
- Not completed
|
||||
- Target date is "in the past"
|
||||
Makes use of the OVERDUE_FILTER to avoid code duplication
|
||||
"""
|
||||
|
||||
# Cannot be deemed overdue if target_date is not set
|
||||
if self.target_date is None:
|
||||
return False
|
||||
|
||||
today = datetime.now().date()
|
||||
|
||||
return self.active and self.target_date < today
|
||||
query = Build.objects.filter(pk=self.pk)
|
||||
query = query.filter(Build.OVERDUE_FILTER)
|
||||
|
||||
return query.exists()
|
||||
|
||||
@property
|
||||
def active(self):
|
||||
"""
|
||||
|
@ -10,6 +10,7 @@ from rest_framework.test import APITestCase
|
||||
from rest_framework import status
|
||||
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from .models import Build
|
||||
from stock.models import StockItem
|
||||
@ -70,6 +71,24 @@ class BuildTestSimple(TestCase):
|
||||
|
||||
self.assertEqual(b2.status, BuildStatus.COMPLETE)
|
||||
|
||||
def test_overdue(self):
|
||||
"""
|
||||
Test overdue status functionality
|
||||
"""
|
||||
|
||||
today = datetime.now().date()
|
||||
|
||||
build = Build.objects.get(pk=1)
|
||||
self.assertFalse(build.is_overdue)
|
||||
|
||||
build.target_date = today - timedelta(days=1)
|
||||
build.save()
|
||||
self.assertTrue(build.is_overdue)
|
||||
|
||||
build.target_date = today + timedelta(days=80)
|
||||
build.save()
|
||||
self.assertFalse(build.is_overdue)
|
||||
|
||||
def test_is_active(self):
|
||||
b1 = Build.objects.get(pk=1)
|
||||
b2 = Build.objects.get(pk=2)
|
||||
|
Reference in New Issue
Block a user