import datetime from django.utils import timezone from la_chariotte.order.models import GroupedOrder class TestGroupedOrdersModel: """Tests for Grouped orders model""" 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 = GroupedOrder(deadline=deadline) assert ongoing_gr_order.is_ongoing() 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) old_gr_order = GroupedOrder(deadline=deadline) assert not old_gr_order.is_ongoing() def test_is_to_be_delivered_with_today_delivery(self): """ is_to_be_delivered() returns True if the delivery date is today """ del_date = timezone.now().date() gr_order = GroupedOrder(delivery_date=del_date) assert gr_order.is_to_be_delivered() def test_is_to_be_delivered_with_old_grouped_order(self): """ is_to_be_delivered() returns False if the delivery date is passed """ del_date = timezone.now().date() - datetime.timedelta(days=1) old_gr_order = GroupedOrder(delivery_date=del_date) assert not old_gr_order.is_to_be_delivered() def test_is_to_be_delivered_with_crossed_deadline_grouped_order(self): """ is_to_be_delivered() returns True even if the deadline is crossed """ deadline = timezone.now() - datetime.timedelta(hours=1) del_date = timezone.now().date() + datetime.timedelta(days=1) old_gr_order = GroupedOrder(deadline=deadline, delivery_date=del_date) assert old_gr_order.is_to_be_delivered()