fonction is_ongoing et tests

This commit is contained in:
Laetitia Getti 2023-03-17 17:39:25 +01:00
parent e979a0e227
commit c5d9b45f43
2 changed files with 34 additions and 2 deletions

View file

@ -1,9 +1,19 @@
import datetime
from django.db import models from django.db import models
from django.utils import timezone
class Grouped_order(models.Model): class Grouped_order(models.Model):
name = models.CharField(max_length=100, null=True) # optionnal name = models.CharField(max_length=100, null=True) # optionnal
orga = models.CharField(max_length=100) # a changer, utiliser ForeignKey de user orga = models.CharField(max_length=100) # a changer, utiliser ForeignKey de user
date = models.DateField('Date de livraison') date = models.DateField('Date de livraison')
deadline = models.DateTimeField('Date limite de commande')
def is_ongoing(self):
"""Returns True if the grouped order is open for new Orders - False if it's too late"""
return self.deadline >= timezone.now()
def __str__(self): def __str__(self):
return self.name if self.name else f"Commande groupée {self.pk} du {self.date} organisée par {self.orga}" return self.name if self.name else f"Commande groupée {self.pk} du {self.date} organisée par {self.orga}"

View file

@ -1,3 +1,25 @@
from django.test import TestCase import datetime
from django.test import TestCase
from django.utils import timezone
from .models import Grouped_order
class GroupedOrderModelTests(TestCase):
def test_is_ongoing_with_ongoing_grouped_order(self):
"""
is_ongoing() returns True if the deadline is not crossed
"""
deadline = timezone.now() + datetime.timedelta(days=10)
ongoing_gr_order = Grouped_order(deadline=deadline)
self.assertIs(ongoing_gr_order.is_ongoing(), True)
def test_is_ongoing_with_old_grouped_order(self):
"""
is_ongoing() returns False if the deadline is crossed
"""
deadline = timezone.now() - datetime.timedelta(hours=1)
ongoing_gr_order = Grouped_order(deadline=deadline)
self.assertIs(ongoing_gr_order.is_ongoing(), False)
# Create your tests here.