0001-opendatasoft-copy-id-and-text-original-fields-54768.patch
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 |
- |