Projet

Général

Profil

0001-opendatasoft-copy-id-and-text-original-fields-54768.patch

Nicolas Roche, 25 juin 2021 16:11

Télécharger (2,75 ko)

Voir les différences:

Subject: [PATCH] opendatasoft: copy id and text original fields (#54768)

 passerelle/apps/opendatasoft/models.py |  2 ++
 tests/test_opendatasoft.py             | 21 +++++++++++++++++++++
 2 files changed, 23 insertions(+)
passerelle/apps/opendatasoft/models.py
96 96
        err_desc = result_response.json().get('error')
97 97
        if err_desc:
98 98
            return {'err': 1, 'err_desc': err_desc}
99 99

  
100 100
        result = []
101 101
        for record in result_response.json().get('records'):
102 102
            data = {}
103 103
            for key, value in record.get('fields').items():
104
                if key in ('id', 'text'):
105
                    key = 'original_%s' % key
104 106
                data[key] = value
105 107
            data['id'] = record.get('recordid')
106 108
            data['text'] = render_to_string(text_template, data).strip()
107 109
            result.append(data)
108 110

  
109 111
        return {'data': result}
110 112

  
111 113
    @endpoint(
tests/test_opendatasoft.py
313 313
    resp.form['name'] = query.name
314 314
    resp = resp.form.submit()
315 315
    assert resp.status_code == 200
316 316
    assert 'A query with this name already exists' in resp.text
317 317
    resp.form['slug'] = 'foo-bar'
318 318
    resp.form['name'] = 'Foo Bar'
319 319
    resp = resp.form.submit()
320 320
    assert resp.status_code == 302
321

  
322

  
323
@mock.patch('passerelle.utils.Request.get')
324
def test_query_q_having_original_fields(mocked_get, app, query):
325
    endpoint = '/opendatasoft/my_connector/q/my_query/'
326
    params = {
327
        'id': '7cafcd5c692773e8b863587b2d38d6be82e023d8',
328
    }
329
    content = json.loads(FAKED_CONTENT_ID_SEARCH)
330
    content['records'][0]['fields']['id'] = 'original id'
331
    content['records'][0]['fields']['text'] = 'original text'
332
    query.text_template = '{{id}} - {{original_id}} - {{original_text}}'
333
    query.save()
334
    mocked_get.return_value = utils.FakedResponse(content=json.dumps(content), status_code=200)
335
    resp = app.get(endpoint, params=params, status=200)
336
    assert resp.json['data'][0]['original_id'] == 'original id'
337
    assert resp.json['data'][0]['original_text'] == 'original text'
338
    assert (
339
        resp.json['data'][0]['text']
340
        == "7cafcd5c692773e8b863587b2d38d6be82e023d8 - original id - original text"
341
    )
321
-