2
0
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:
Oliver Walters
2021-01-20 07:49:14 +11:00
parent 914fe15921
commit 82e6b87e1c
5 changed files with 70 additions and 9 deletions

View File

@ -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):
"""

View File

@ -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)