Projet

Général

Profil

0001-manager-prefix-ConfigJsonCell-parameter-fields-in-fo.patch

Lauréline Guérin, 24 juin 2022 16:27

Télécharger (5,19 ko)

Voir les différences:

Subject: [PATCH] manager: prefix ConfigJsonCell parameter fields in form
 (#66603)

 combo/data/forms.py   |  7 ++++---
 tests/test_manager.py | 32 ++++++++++++++++----------------
 2 files changed, 20 insertions(+), 19 deletions(-)
combo/data/forms.py
115 115
        }
116 116
        for field in self.formdef:
117 117
            field_class = field_classes.get(field.get('type'), forms.CharField)
118
            self.fields[field['varname']] = field_class(
118
            self.fields['parameter_%s' % field['varname']] = field_class(
119 119
                label=field['label'],
120 120
                required=field.get('required', True),
121 121
                initial=parameters.get(field['varname']),
......
125 125
    def clean(self):
126 126
        self.cleaned_data['parameters'] = {}
127 127
        for field in self.formdef:
128
            if field['varname'] not in self.cleaned_data:
128
            varname = 'parameter_%s' % field['varname']
129
            if varname not in self.cleaned_data:
129 130
                continue
130
            self.cleaned_data['parameters'][field['varname']] = self.cleaned_data[field['varname']]
131
            self.cleaned_data['parameters'][field['varname']] = self.cleaned_data[varname]
131 132
        return self.cleaned_data
tests/test_manager.py
1769 1769
            'appearance',
1770 1770
        ]
1771 1771

  
1772
        resp.form['c%s-test' % cells[0].get_reference()].value = 'Hello world'
1773
        resp.form['c%s-test3' % cells[0].get_reference()].value = 'Hello again'
1772
        resp.form['c%s-parameter_test' % cells[0].get_reference()].value = 'Hello world'
1773
        resp.form['c%s-parameter_test3' % cells[0].get_reference()].value = 'Hello again'
1774 1774
        manager_submit_cell(resp.form)
1775 1775

  
1776 1776
        # test form error
1777 1777
        resp = app.get('/manage/pages/%s/' % page.id)
1778
        resp.form['c%s-test' % cells[0].get_reference()].value = ''
1779
        resp.form['c%s-test3' % cells[0].get_reference()].value = 'Hello'
1778
        resp.form['c%s-parameter_test' % cells[0].get_reference()].value = ''
1779
        resp.form['c%s-parameter_test3' % cells[0].get_reference()].value = 'Hello'
1780 1780
        resp = manager_submit_cell(resp.form, expect_errors=True)
1781
        assert resp.context['form'].errors['test'] == ['This field is required.']
1781
        assert resp.context['form'].errors['parameter_test'] == ['This field is required.']
1782 1782

  
1783 1783
        resp = app.get('/manage/pages/%s/' % page.id)
1784
        assert resp.form['c%s-test' % cells[0].get_reference()].value == 'Hello world'
1785
        assert resp.form['c%s-test2' % cells[0].get_reference()].checked is False
1786
        assert resp.form['c%s-test3' % cells[0].get_reference()].value == 'Hello again'
1784
        assert resp.form['c%s-parameter_test' % cells[0].get_reference()].value == 'Hello world'
1785
        assert resp.form['c%s-parameter_test2' % cells[0].get_reference()].checked is False
1786
        assert resp.form['c%s-parameter_test3' % cells[0].get_reference()].value == 'Hello again'
1787 1787

  
1788 1788
        resp = app.get('/manage/pages/%s/' % page.id)
1789 1789
        assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.text
1790
        resp.forms[0]['c%s-test' % cells[0].get_reference()].value = 'World Hello'
1791
        resp.forms[0]['c%s-test2' % cells[0].get_reference()].checked = True
1792
        assert resp.form['c%s-test4' % cells[0].get_reference()].tag == 'textarea'
1793
        resp.forms[0]['c%s-test4' % cells[0].get_reference()].value = 'Text Area'
1790
        resp.forms[0]['c%s-parameter_test' % cells[0].get_reference()].value = 'World Hello'
1791
        resp.forms[0]['c%s-parameter_test2' % cells[0].get_reference()].checked = True
1792
        assert resp.form['c%s-parameter_test4' % cells[0].get_reference()].tag == 'textarea'
1793
        resp.forms[0]['c%s-parameter_test4' % cells[0].get_reference()].value = 'Text Area'
1794 1794
        resp = manager_submit_cell(resp.form)
1795 1795
        assert resp.json['tabs']['general']['form'].strip().startswith('<p><label')
1796 1796

  
1797 1797
        resp = app.get('/manage/pages/%s/' % page.id)
1798
        assert resp.form['c%s-test' % cells[0].get_reference()].value == 'World Hello'
1799
        assert resp.form['c%s-test2' % cells[0].get_reference()].checked is True
1800
        assert resp.form['c%s-test3' % cells[0].get_reference()].value == 'Hello again'
1801
        assert resp.form['c%s-test4' % cells[0].get_reference()].value == 'Text Area'
1798
        assert resp.form['c%s-parameter_test' % cells[0].get_reference()].value == 'World Hello'
1799
        assert resp.form['c%s-parameter_test2' % cells[0].get_reference()].checked is True
1800
        assert resp.form['c%s-parameter_test3' % cells[0].get_reference()].value == 'Hello again'
1801
        assert resp.form['c%s-parameter_test4' % cells[0].get_reference()].value == 'Text Area'
1802 1802

  
1803 1803

  
1804 1804
def test_logout(app, admin_user):
1805
-