예제 #1
0
    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)
예제 #2
0
    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)
예제 #4
0
    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" />""")
예제 #5
0
    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" />""")
예제 #6
0
    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)
예제 #8
0
    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)
예제 #9
0
    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)
예제 #10
0
    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])
예제 #11
0
    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)
예제 #13
0
    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])
예제 #15
0
    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)
예제 #17
0
    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)