Projet

Général

Profil

0001-data_sources-return-an-empty-list-for-an-unknown-car.patch

Thomas Noël, 15 mai 2020 16:03

Télécharger (1,89 ko)

Voir les différences:

Subject: [PATCH] data_sources: return an empty list for an unknown carddef
 (#42960)

 tests/test_backoffice_pages.py | 11 +++++++++++
 wcs/data_sources.py            |  5 ++++-
 2 files changed, 15 insertions(+), 1 deletion(-)
tests/test_backoffice_pages.py
5848 5848
    resp = resp.click('card plop')
5849 5849
    assert '<div class="value">plop</div>' in resp
5850 5850

  
5851
    # link to a unknown carddef
5852
    carddef2.fields = [
5853
        fields.ItemField(id='1', label='Test', type='item',
5854
            data_source={'type': 'carddef:unknown', 'value': ''}),
5855
    ]
5856
    carddef2.store()
5857
    app = login(get_app(pub))
5858
    resp = app.get('/backoffice/data/')
5859
    resp = resp.click('bar')
5860
    resp = resp.click('Add')  # no error
5861

  
5851 5862
    # look without access rights
5852 5863
    carddef.backoffice_submission_roles = None
5853 5864
    carddef.workflow_roles = {'_editor': None}
wcs/data_sources.py
149 149
    if data_source.get('type') and data_source.get('type').startswith('carddef:'):
150 150
        # cards
151 151
        from wcs.carddef import CardDef
152
        carddef = CardDef.get_by_urlname(data_source['type'][8:])
152
        try:
153
            carddef = CardDef.get_by_urlname(data_source['type'][8:])
154
        except KeyError:
155
            return []
153 156
        items = [x.get_data_source_structured_item()
154 157
                 for x in carddef.data_class().select()
155 158
                 if not x.is_draft()]
156
-