def test_get_form_field_kwargs(self):
        ff = FormFieldModel(
            label='Label',
            name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField')
        self.assertEqual(ff.get_form_field_kwargs(), {
            'label': 'Label',
            'name': 'my-label',
        })

        ff = FormFieldModel(
            label='Label',
            name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField',
            _options='{"max_length": 123}')
        self.assertEqual(ff.get_form_field_kwargs(), {
            'label': 'Label',
            'max_length': 123,
            'name': 'my-label',
        })

        ff = FormFieldModel(
            label='Label',
            name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField',
            _options='{"name": "some-name", "label": "some label", "a": "b"}')
        self.assertEqual(ff.get_form_field_kwargs(), {
            'a': 'b',
            'label': 'Label',
            'name': 'my-label',
        })
    def test_get_form_field_kwargs(self):
        ff = FormFieldModel(label='Label', name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField')
        self.assertEqual(ff.get_form_field_kwargs(), {
            'label': 'Label',
            'name': 'my-label',
        })

        ff = FormFieldModel(label='Label', name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField',
            _options='{"max_length": 123}')
        self.assertEqual(ff.get_form_field_kwargs(), {
            'label': 'Label',
            'max_length': 123,
            'name': 'my-label',
        })

        ff = FormFieldModel(label='Label', name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField',
            _options='{"name": "some-name", "label": "some label", "a": "b"}')
        self.assertEqual(ff.get_form_field_kwargs(), {
            'a': 'b',
            'label': 'Label',
            'name': 'my-label',
        })
    def test_generate_form_field(self):
        form = forms.Form()
        ff1 = FormFieldModel(
            label='Label',
            name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField')
        ff1.generate_form_field(form)
        ff2 = FormFieldModel(
            label='Label2',
            name="label2",
            field_type='dynamic_forms.formfields.BooleanField')
        ff2.generate_form_field(form)

        self.assertHTMLEqual(
            form.as_p(),
            '<p><label for="id_my-label">Label:</label> <input type="text" '
            'id="id_my-label" name="my-label" /></p>\n<p><label '
            'for="id_label2">Label2:</label> <input id="id_label2" '
            'name="label2" type="checkbox" /></p>')
    def test_generate_form_field(self):
        form = forms.Form()
        ff1 = FormFieldModel(label='Label', name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField')
        ff1.generate_form_field(form)
        ff2 = FormFieldModel(label='Label2', name="label2",
            field_type='dynamic_forms.formfields.BooleanField')
        ff2.generate_form_field(form)

        self.assertHTMLEqual(form.as_p(),
            '<p><label for="id_my-label">Label:</label> <input type="text" '
            'id="id_my-label" name="my-label" /></p>\n<p><label '
            'for="id_label2">Label2:</label> <input id="id_label2" '
            'name="label2" type="checkbox" /></p>')
    def test_generate_form_field(self):
        form = forms.Form()
        ff1 = FormFieldModel(
            label='Label',
            name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField')
        ff1.generate_form_field(form)
        ff2 = FormFieldModel(
            label='Label2',
            name="label2",
            field_type='dynamic_forms.formfields.BooleanField')
        ff2.generate_form_field(form)

        required = ' required' if django.VERSION >= (1, 10) else ''
        self.assertHTMLEqual(
            form.as_p(), '<p>'
            '  <label for="id_my-label">Label:</label>'
            '  <input type="text" id="id_my-label"%s name="my-label" />'
            '</p><p>'
            '  <label for="id_label2">Label2:</label>'
            '  <input id="id_label2" name="label2"%s type="checkbox" />'
            '</p>' % (required, required))
    def test_get_form_field_kwargs(self):
        ff = FormFieldModel(label="Label", name="my-label", field_type="dynamic_forms.formfields.SingleLineTextField")
        self.assertEqual(ff.get_form_field_kwargs(), {"label": "Label", "name": "my-label"})

        ff = FormFieldModel(
            label="Label",
            name="my-label",
            field_type="dynamic_forms.formfields.SingleLineTextField",
            _options='{"max_length": 123}',
        )
        self.assertEqual(ff.get_form_field_kwargs(), {"label": "Label", "max_length": 123, "name": "my-label"})

        ff = FormFieldModel(
            label="Label",
            name="my-label",
            field_type="dynamic_forms.formfields.SingleLineTextField",
            _options='{"name": "some-name", "label": "some label", "a": "b"}',
        )
        self.assertEqual(ff.get_form_field_kwargs(), {"a": "b", "label": "Label", "name": "my-label"})
    def test_generate_form_field(self):
        form = forms.Form()
        ff1 = FormFieldModel(label='Label', name="my-label",
            field_type='dynamic_forms.formfields.SingleLineTextField')
        ff1.generate_form_field(form)
        ff2 = FormFieldModel(label='Label2', name="label2",
            field_type='dynamic_forms.formfields.BooleanField')
        ff2.generate_form_field(form)

        required = ' required' if django.VERSION >= (1, 10) else ''
        self.assertHTMLEqual(
            form.as_p(),
            '<p>'
            '  <label for="id_my-label">Label:</label>'
            '  <input type="text" id="id_my-label"%s name="my-label" />'
            '</p><p>'
            '  <label for="id_label2">Label2:</label>'
            '  <input id="id_label2" name="label2"%s type="checkbox" />'
            '</p>' % (required, required)
        )