opendatasoft: copy id and text original fields (#54768)

This commit is contained in:
Nicolas Roche 2021-06-11 11:55:53 +02:00
parent d897dc0f55
commit e741d458ec
2 changed files with 23 additions and 0 deletions

View File

@ -101,6 +101,8 @@ class OpenDataSoft(BaseResource):
for record in result_response.json().get('records'):
data = {}
for key, value in record.get('fields').items():
if key in ('id', 'text'):
key = 'original_%s' % key
data[key] = value
data['id'] = record.get('recordid')
data['text'] = render_to_string(text_template, data).strip()

View File

@ -318,3 +318,24 @@ def test_opendatasoft_query_unicity(admin_user, app, connector, query):
resp.form['name'] = 'Foo Bar'
resp = resp.form.submit()
assert resp.status_code == 302
@mock.patch('passerelle.utils.Request.get')
def test_query_q_having_original_fields(mocked_get, app, query):
endpoint = '/opendatasoft/my_connector/q/my_query/'
params = {
'id': '7cafcd5c692773e8b863587b2d38d6be82e023d8',
}
content = json.loads(FAKED_CONTENT_ID_SEARCH)
content['records'][0]['fields']['id'] = 'original id'
content['records'][0]['fields']['text'] = 'original text'
query.text_template = '{{id}} - {{original_id}} - {{original_text}}'
query.save()
mocked_get.return_value = utils.FakedResponse(content=json.dumps(content), status_code=200)
resp = app.get(endpoint, params=params, status=200)
assert resp.json['data'][0]['original_id'] == 'original id'
assert resp.json['data'][0]['original_text'] == 'original text'
assert (
resp.json['data'][0]['text']
== "7cafcd5c692773e8b863587b2d38d6be82e023d8 - original id - original text"
)