import datetime from unittest import mock from django.test import TestCase from django.utils import timezone from kfet.forms import KPsulCheckoutForm from kfet.models import Checkout from .utils import create_user class KPsulCheckoutFormTests(TestCase): def setUp(self): self.now = timezone.now() user = create_user() self.c1 = Checkout.objects.create( name="C1", balance=10, created_by=user.profile.account_kfet, valid_from=self.now, valid_to=self.now + datetime.timedelta(days=1), ) self.form = KPsulCheckoutForm() def test_checkout(self): checkout_f = self.form.fields["checkout"] self.assertListEqual( list(checkout_f.choices), [("", "---------"), (self.c1.pk, "C1")] ) @mock.patch("django.utils.timezone.now") def test_checkout_valid(self, mock_now): """ Checkout are filtered using the current datetime. Regression test for #184. """ self.now += datetime.timedelta(days=2) mock_now.return_value = self.now form = KPsulCheckoutForm() checkout_f = form.fields["checkout"] self.assertListEqual(list(checkout_f.choices), [("", "---------")])