def test_is_expired_after_payment_deadline(self): order = Order(**self.data) order.payment_window = 60 # expires after 1h order.save() order = Order.objects.last() order.created_on = timezone.now() - timedelta(minutes=120) # 2h ago self.assertTrue(order.expired)
def test_payment_deadline_calculation(self): created_on = timezone.now() payment_window = 60 order = Order(**self.data) order.payment_window = payment_window expected = created_on + timedelta(minutes=payment_window) order.save() # ignore ms self.assertTrue( abs(expected - order.payment_deadline) < timedelta(seconds=1))
def test_is_frozen_if_expired(self): order = Order(**self.data) order.payment_window = 60 # expires after 1h order.save() order = Order.objects.last() order.created_on = timezone.now() - timedelta(minutes=120) # 2h ago # deadline is in the past self.assertTrue(timezone.now() > order.payment_deadline) # so it's frozen self.assertTrue(order.payment_status_frozen) # even though it's not paid self.assertFalse(order.is_paid)
def test_is_not_frozen_if_is_not_paid_neither_expired(self): payment_window = 60 order = Order(**self.data) order.payment_window = payment_window order.save() order = Order.objects.last() # it's not paid self.assertFalse(order.is_paid) # also it's not expired self.assertFalse(order.expired) # so it's not frozen self.assertFalse(order.payment_status_frozen)
def test_is_not_expired_if_paid(self): order = Order(**self.data) order.payment_window = 60 # expires after 1h order.is_paid = True order.save() order = Order.objects.last() order.created_on = timezone.now() - timedelta(minutes=120) # 2h ago # deadline is in the past self.assertTrue(timezone.now() > order.payment_deadline) # but already paid self.assertTrue(order.is_paid) # so it's not expired self.assertFalse(order.expired)