test_forms.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from unittest import TestCase
  2. from django.http import QueryDict
  3. from catalog.constants import INSTATE, REGULAR
  4. from catalog.models import Subscription
  5. from catalog.tests import SubscriptionFixture
  6. from storefront.forms import SubscriptionForm
  7. import pytest
  8. # @pytest.mark.django_db
  9. class SubscriptionFormFixture(SubscriptionFixture, TestCase):
  10. expected_is_valid = True
  11. @property
  12. def expected_subscription(self):
  13. return Subscription.objects.get_or_create(defaults=self.subscription_data)[0]
  14. def setUp(self):
  15. self.expected_subscription
  16. self.form = SubscriptionForm(
  17. QueryDict("shipping_method=0&title=0&duration=0"), shipping_type=INSTATE
  18. )
  19. def test_init(self):
  20. self.assertIsInstance(self.form, SubscriptionForm)
  21. self.assertEqual(
  22. [c for c in self.form.fields["title"].choices],
  23. [(0, self.expected_subscription.title)],
  24. )
  25. self.assertEqual(
  26. [c for c in self.form.fields["duration"].choices],
  27. [(0, self.expected_subscription.duration)],
  28. )
  29. # not dynamic
  30. self.assertEqual(
  31. [(0, REGULAR)], [(0, self.expected_subscription.shipping_method)]
  32. )
  33. def test_is_valid(self):
  34. self.assertTrue(self.form.is_valid())