def test_stacked_config(self): form = RegistrationForm() config = FormConfig() config.push() config.configure( 'widget', widgets.Textarea(), filter=ConfigFilter("CharField"), ) config.push() config.configure( 'widget', widgets.HiddenInput(), filter=ConfigFilter('short_biography'), ) widget = config.retrieve('widget', bound_field=form['short_biography']) self.assertEqual(widget.__class__, widgets.HiddenInput) config.pop() widget = config.retrieve('widget', bound_field=form['short_biography']) self.assertEqual(widget.__class__, widgets.Textarea) config.pop() widget = config.retrieve('widget', bound_field=form['short_biography']) self.assertEqual(widget.__class__, widgets.TextInput)
def test_field_filter_works_on_subclasses(self): form = RegistrationForm() config = FormConfig() config.configure('widget', widgets.HiddenInput(), filter=ConfigFilter("IntegerField")) widget = config.retrieve('widget', bound_field=form['age']) self.assertEqual(widget.__class__, widgets.HiddenInput)
def test_retrieve_for_multiple_valid_values(self): form = RegistrationForm() config = FormConfig() config.configure('widget', widgets.Textarea(), filter=ConfigFilter('CharField')) config.configure('widget', widgets.HiddenInput(), filter=ConfigFilter('short_biography')) widget = config.retrieve('widget', bound_field=form['name']) self.assertEqual(widget.__class__, widgets.Textarea) widget = config.retrieve('widget', bound_field=form['comment']) self.assertEqual(widget.__class__, widgets.Textarea) # we get HiddenInput since this was configured last, even the Textarea # config applies to ``short_biography`` widget = config.retrieve('widget', bound_field=form['short_biography']) self.assertEqual(widget.__class__, widgets.HiddenInput)