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_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_change_widget(self): form = SimpleForm() config = FormConfig() config.configure('widget', forms.PasswordInput(), filter=ConfigFilter(form['name'])) self.assertHTMLEqual(render("""{% form myform using %} {% formfield form.name %} {% endform %}""", {'myform': form}, config), """<input type="password" name="name" id="id_name" />""")
def test_change_widget(self): form = SimpleForm() config = FormConfig() config.configure('widget', forms.PasswordInput(), filter=ConfigFilter(form['name'])) self.assertHTMLEqual(render("""{% form myform using %} {% formfield form.name %} {% endform %}""", {'myform': form}, config), """<input type="password" name="name" id="id_name" />""")
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_filter_for_field_class_name(self): form = RegistrationForm() config = FormConfig() config.configure("widget", widgets.TextInput(), filter=ConfigFilter("CharField")) widget = config.retrieve("widget", bound_field=form["comment"]) self.assertEqual(widget.__class__, widgets.TextInput) widget = config.retrieve("widget", bound_field=form["name"]) self.assertEqual(widget.__class__, widgets.TextInput)
def test_filter_for_field_class_name(self): form = RegistrationForm() config = FormConfig() config.configure('widget', widgets.TextInput(), filter=ConfigFilter('CharField')) widget = config.retrieve('widget', bound_field=form['comment']) self.assertEqual(widget.__class__, widgets.TextInput) widget = config.retrieve('widget', bound_field=form['name']) self.assertEqual(widget.__class__, widgets.TextInput)
def test_filter_for_field_class_name(self): form = RegistrationForm() config = FormConfig() config.configure('widget', widgets.TextInput(), filter=ConfigFilter('CharField')) widget = config.retrieve('widget', bound_field=form['comment']) self.assertEqual(widget.__class__, widgets.TextInput) widget = config.retrieve('widget', bound_field=form['name']) self.assertEqual(widget.__class__, widgets.TextInput)
def test_retrieve_all(self): config = FormConfig() config.configure('number', 1) config.configure('number', 2) self.assertEqual(list(config.retrieve_all('number')), [2, 1]) config.configure('number', 4, filter=lambda nr=None, **kwargs: nr == 'four') self.assertEqual(list(config.retrieve_all('number')), [2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='four')), [4, 2, 1]) config.push() config.configure('number', 5, filter=lambda nr=None, **kwargs: nr == 'five') self.assertEqual(list(config.retrieve_all('number')), [2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='five')), [5, 2, 1]) config.configure('number', -1) self.assertEqual(list(config.retrieve_all('number')), [-1, 2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='four')), [-1, 4, 2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='five')), [-1, 5, 2, 1]) config.pop() self.assertEqual(list(config.retrieve_all('number')), [2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='four')), [4, 2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='five')), [2, 1])
def test_filter_for_name_object(self): form = RegistrationForm() config = FormConfig() config.configure('widget', widgets.Textarea(), filter=ConfigFilter('object')) widget = config.retrieve('widget', bound_field=form['email']) self.assertEqual(widget.__class__, widgets.EmailInput) widget = config.retrieve('widget', bound_field=form['name']) self.assertEqual(widget.__class__, widgets.TextInput) widget = config.retrieve('widget', bound_field=form['comment']) self.assertEqual(widget.__class__, widgets.Textarea)
def test_filter_for_name_object(self): form = RegistrationForm() config = FormConfig() config.configure("widget", widgets.Textarea(), filter=ConfigFilter("object")) widget = config.retrieve("widget", bound_field=form["email"]) self.assertEqual(widget.__class__, widgets.EmailInput) widget = config.retrieve("widget", bound_field=form["name"]) self.assertEqual(widget.__class__, widgets.TextInput) widget = config.retrieve("widget", bound_field=form["comment"]) self.assertEqual(widget.__class__, widgets.Textarea)
def test_retrieve_all(self): config = FormConfig() config.configure('number', 1) config.configure('number', 2) self.assertEqual(list(config.retrieve_all('number')), [2, 1]) config.configure('number', 4, filter=lambda nr=None, **kwargs: nr == 'four') self.assertEqual(list(config.retrieve_all('number')), [2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='four')), [4, 2, 1]) config.push() config.configure('number', 5, filter=lambda nr=None, **kwargs: nr == 'five') self.assertEqual(list(config.retrieve_all('number')), [2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='five')), [5, 2, 1]) config.configure('number', -1) self.assertEqual(list(config.retrieve_all('number')), [-1, 2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='four')), [-1, 4, 2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='five')), [-1, 5, 2, 1]) config.pop() self.assertEqual(list(config.retrieve_all('number')), [2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='four')), [4, 2, 1]) self.assertEqual(list(config.retrieve_all('number', nr='five')), [2, 1])
def test_retrieve_all(self): config = FormConfig() config.configure("number", 1) config.configure("number", 2) self.assertEqual(list(config.retrieve_all("number")), [2, 1]) config.configure("number", 4, filter=lambda nr=None, **kwargs: nr == "four") self.assertEqual(list(config.retrieve_all("number")), [2, 1]) self.assertEqual(list(config.retrieve_all("number", nr="four")), [4, 2, 1]) config.push() config.configure("number", 5, filter=lambda nr=None, **kwargs: nr == "five") self.assertEqual(list(config.retrieve_all("number")), [2, 1]) self.assertEqual(list(config.retrieve_all("number", nr="five")), [5, 2, 1]) config.configure("number", -1) self.assertEqual(list(config.retrieve_all("number")), [-1, 2, 1]) self.assertEqual(list(config.retrieve_all("number", nr="four")), [-1, 4, 2, 1]) self.assertEqual(list(config.retrieve_all("number", nr="five")), [-1, 5, 2, 1]) config.pop() self.assertEqual(list(config.retrieve_all("number")), [2, 1]) self.assertEqual(list(config.retrieve_all("number", nr="four")), [4, 2, 1]) self.assertEqual(list(config.retrieve_all("number", nr="five")), [2, 1])
def test_filter_for_name_object(self): form = RegistrationForm() config = FormConfig() config.configure('widget', widgets.Textarea(), filter=ConfigFilter('object')) widget = config.retrieve('widget', bound_field=form['email']) self.assertEqual(widget.__class__, widgets.EmailInput) widget = config.retrieve('widget', bound_field=form['name']) self.assertEqual(widget.__class__, widgets.TextInput) widget = config.retrieve('widget', bound_field=form['comment']) self.assertEqual(widget.__class__, widgets.Textarea)
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)
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)