0001-opendatasoft-manage-error-returned-43223.patch
passerelle/apps/opendatasoft/models.py | ||
---|---|---|
69 | 69 |
'q': query, |
70 | 70 |
} |
71 | 71 |
if self.api_key: |
72 | 72 |
params.update({'apikey': self.api_key}) |
73 | 73 |
if limit: |
74 | 74 |
params.update({'rows': limit}) |
75 | 75 | |
76 | 76 |
result_response = self.requests.get(url, params=params) |
77 |
err_desc = result_response.json().get('error') |
|
78 |
if err_desc: |
|
79 |
return {'err': 1, 'err_desc': err_desc} |
|
77 | 80 | |
78 | 81 |
result = [] |
79 | 82 |
for record in result_response.json().get('records'): |
80 | 83 |
data = {} |
81 | 84 |
data['id'] = record.get('recordid') |
82 | 85 | |
83 | 86 |
context = {} |
84 | 87 |
for key, value in record.get('fields').items(): |
tests/test_opendatasoft.py | ||
---|---|---|
180 | 180 |
resp.form['name'] = 'my query' |
181 | 181 |
resp.form['slug'] = 'my-query' |
182 | 182 |
resp.form['dataset'] = 'my-dataset' |
183 | 183 |
resp = resp.form.submit() |
184 | 184 |
resp = resp.follow() |
185 | 185 |
assert resp.html.find('div', {'id': 'queries'}).ul.li.a.text == 'my query' |
186 | 186 | |
187 | 187 | |
188 |
@mock.patch('passerelle.utils.Request.get') |
|
189 |
def test_search_empty_contents(mocked_get, app, connector): |
|
190 |
endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug) |
|
191 |
assert endpoint == '/opendatasoft/my_connector/search' |
|
192 | ||
193 |
# error returned by opendadasoft server |
|
194 |
json_response = json.dumps({'error': "The query is invalid : Field 00 doesn't exist"}) |
|
195 |
mocked_get.return_value = utils.FakedResponse(content=json_response, status_code=200) |
|
196 |
resp = app.get(endpoint, status=200) |
|
197 |
assert resp.json['err'] |
|
198 |
assert resp.json['err_desc'] == "The query is invalid : Field 00 doesn't exist" |
|
199 | ||
200 | ||
188 | 201 |
@mock.patch('passerelle.utils.Request.get') |
189 | 202 |
def test_search_using_q(mocked_get, app, connector): |
190 | 203 |
endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug) |
191 | 204 |
assert endpoint == '/opendatasoft/my_connector/search' |
192 | 205 |
params = { |
193 | 206 |
'dataset': 'referentiel-adresse-test', |
194 | 207 |
'text_template': '{{numero}} {{nom_rue|safe}} {{nom_commun}}', |
195 | 208 |
'q': "rue de l'aubepine", |
196 |
- |