def test_form_factory_widgets(self): """ Test widgets generated by the form factory. """ GroupsForm = groups_form_factory(grouping_name=self.checkboxes_name) form = GroupsForm() for field in form: self.assertTrue(isinstance(field.field.widget, CheckboxInput), "Field should be represented by a checkbox.") GroupsForm = groups_form_factory(grouping_name=self.radio_name) form = GroupsForm() for field in form: self.assertTrue(isinstance(field.field.widget, RadioSelect), "Field should be represented by a radio option.") GroupsForm = groups_form_factory(grouping_name=self.select_name) form = GroupsForm() for field in form: self.assertTrue(isinstance(field.field.widget, Select), "Field should be represented by a select box.")
def test_form_factory_for_user(self): """ Test the form factory for a given user. """ self.user = get_admin_user() self.subscription = UserSubscription.objects.get(user=self.user) merge = {'GROUPINGS':[{'name':self.checkboxes_name, 'groups':'Option 1,Option 2'}]} r = self.subscription.subscribe(double_optin=False, update_existing=True, merge_vars=merge) GroupsForm = groups_form_factory(self.user.email, self.checkboxes_name) form = GroupsForm() post = {} for field in form: post[field.name] = True self.assertIn('checked="checked"', str(field), "Should be checked initially for this user.") form = GroupsForm(post) self.assertTrue(form.is_valid()) self.assertIn("Option 1", form.selected_groups) self.assertIn("Option 2", form.selected_groups)
def test_form_factory_default(self): """ Test calling form factory without arguments. """ # Can't be sure what "first" group is. Just make sure it instantiates. GroupsForm = groups_form_factory() form = GroupsForm()