Projet

Général

Profil

0001-fields-fix-computed-value-with-lazylist-60600.patch

Lauréline Guérin, 13 janvier 2022 11:50

Télécharger (1,97 ko)

Voir les différences:

Subject: [PATCH] fields: fix computed value with lazylist (#60600)

 tests/form_pages/test_computed_field.py | 11 +++++++++++
 wcs/forms/root.py                       |  1 +
 2 files changed, 12 insertions(+)
tests/form_pages/test_computed_field.py
767 767
        logged_error = pub.loggederror_class.select(order_by='id')[1]
768 768
        assert logged_error.summary == 'Invalid value "True" for field "computed"'
769 769
        assert logged_error.formdef_id == formdef.id
770

  
771
    formdef.fields[0].value_template = '{{ cards|objects:"%s"|getlist:"id"|join:"," }}' % carddef.url_name
772
    formdef.store()
773
    resp = get_app(pub).get('/test/')
774
    assert 'XY' in resp.text
775
    if pub.is_using_postgresql():
776
        assert pub.loggederror_class.count() == 3
777
        logged_error = pub.loggederror_class.select(order_by='id')[2]
778
        assert 'Invalid value "<wcs.variables.LazyList object at' in logged_error.summary
779
        assert '>" for field "computed"' in logged_error.summary
780
        assert logged_error.formdef_id == formdef.id
wcs/forms/root.py
675 675
                        and field.data_source.get('type')
676 676
                        and field.data_source['type'].startswith('carddef:')
677 677
                    ):
678
                        value = str(value)
678 679
                        try:
679 680
                            int(str(value))
680 681
                        except (TypeError, ValueError):
681
-