Projet

Général

Profil

0004-forms-do-not-keep-empty-values-when-parsing-Computed.patch

Nicolas Roche, 29 août 2019 16:43

Télécharger (2,56 ko)

Voir les différences:

Subject: [PATCH 4/4] forms: do not keep empty values when parsing
 ComputedExpressionWidget (#31823)

 tests/test_admin_pages.py | 9 +++++++++
 tests/test_widgets.py     | 6 ++++++
 wcs/qommon/form.py        | 6 ++++--
 3 files changed, 19 insertions(+), 2 deletions(-)
tests/test_admin_pages.py
2689 2689

  
2690 2690
    resp = resp.click('SMS')
2691 2691
    resp = resp.form.submit()
2692
    assert 'to$element0$value_text' in resp.form.fields.keys()
2693
    assert 'to$element1$value_text' not in resp.form.fields.keys()
2694

  
2695
    resp = resp.form.submit('submit')
2696
    resp = resp.follow()
2697
    resp = resp.follow()
2698
    resp = resp.click(href='items/1/', index=0)
2699
    assert 'to$element0$value_text' in resp.form.fields.keys()
2700
    assert 'to$element1$value_text' not in resp.form.fields.keys()
2692 2701

  
2693 2702
def test_workflows_edit_display_form_action(pub):
2694 2703
    create_superuser(pub)
tests/test_widgets.py
514 514
    assert widget.parse() == 'hello world'
515 515
    assert not widget.has_error()
516 516

  
517
    widget = ComputedExpressionWidget('test')
518
    form = MockHtmlForm(widget)
519
    mock_form_submission(req, widget, {'test$value_text': '', 'test$type': ['text']})
520
    assert widget.parse() == None
521
    assert not widget.has_error()
522

  
517 523
    widget = ComputedExpressionWidget('test')
518 524
    mock_form_submission(req, widget, {'test$value_python': 'hello world', 'test$type': ['python']})
519 525
    assert widget.has_error()
wcs/qommon/form.py
2364 2364
        if not self.get('type'):
2365 2365
            return
2366 2366
        value_type = self.get('type')
2367
        value_content = self.get('value_%s' % value_type) or ''
2367
        value_content = self.get('value_%s' % value_type)
2368 2368
        if value_type == 'python':
2369
            self.value = '=' + value_content
2369
            self.value = '='
2370
            if value_content:
2371
                self.value += value_content
2370 2372
        else:
2371 2373
            self.value = value_content
2372 2374
        if self.value:
2373
-