kpsul/kfet/tests/test_forms.py

48 lines
1.3 KiB
Python
Raw Normal View History

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), [("", "---------")])