from unittest import TestCase from django.http import QueryDict from catalog.constants import INSTATE, REGULAR from catalog.models import Subscription from catalog.tests import SubscriptionFixture from storefront.forms import SubscriptionForm import pytest #@pytest.mark.django_db class SubscriptionFormFixture(SubscriptionFixture, TestCase): expected_is_valid = True @property def expected_subscription(self): return Subscription.objects.get_or_create( defaults=self.subscription_data)[0] def setUp(self): self.expected_subscription self.form = SubscriptionForm(QueryDict( "shipping_method=0&title=0&duration=0"), shipping_type=INSTATE) def test_init(self): self.assertIsInstance(self.form, SubscriptionForm) self.assertEqual( [c for c in self.form.fields['title'].choices], [(0, self.expected_subscription.title)]) self.assertEqual( [c for c in self.form.fields['duration'].choices], [(0, self.expected_subscription.duration)]) # not dynamic self.assertEqual( [(0, REGULAR)], [(0, self.expected_subscription.shipping_method)]) def test_is_valid(self): self.assertTrue(self.form.is_valid())