0001-opendatasoft-manage-empty-content-returned-43223.patch
passerelle/apps/opendatasoft/models.py | ||
---|---|---|
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 | 77 | |
78 | 78 |
result = [] |
79 |
for record in result_response.json().get('records'): |
|
80 |
data = {} |
|
81 |
data['id'] = record.get('recordid') |
|
82 | ||
83 |
context = {} |
|
84 |
for key, value in record.get('fields').items(): |
|
85 |
context[key] = force_text(value) |
|
86 |
template = Template(text_template) |
|
87 |
data['text'] = template.render(Context(context)).strip() |
|
88 | ||
89 |
result.append(data) |
|
79 |
if result_response.json().get('records'): |
|
80 |
for record in result_response.json().get('records'): |
|
81 |
data = {} |
|
82 |
data['id'] = record.get('recordid') |
|
83 | ||
84 |
context = {} |
|
85 |
for key, value in record.get('fields').items(): |
|
86 |
context[key] = force_text(value) |
|
87 |
template = Template(text_template) |
|
88 |
data['text'] = template.render(Context(context)).strip() |
|
89 | ||
90 |
result.append(data) |
|
90 | 91 |
return {'data': result} |
91 | 92 | |
92 | 93 |
@endpoint(name='q', |
93 | 94 |
description=_('Query'), |
94 | 95 |
pattern=r'^(?P<query_slug>[\w:_-]+)/$', |
95 | 96 |
perm='can_access', |
96 | 97 |
show=False) |
97 | 98 |
def q(self, request, query_slug, **kwargs): |
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_content(mocked_get, app, connector): |
|
190 |
endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug) |
|
191 |
assert endpoint == '/opendatasoft/my_connector/search' |
|
192 |
mocked_get.return_value = utils.FakedResponse(content={}, status_code=200) |
|
193 |
resp = app.get(endpoint, status=200) |
|
194 |
assert not resp.json['err'] |
|
195 |
assert len(resp.json['data']) == 0 |
|
196 | ||
197 | ||
188 | 198 |
@mock.patch('passerelle.utils.Request.get') |
189 | 199 |
def test_search_using_q(mocked_get, app, connector): |
190 | 200 |
endpoint = utils.generic_endpoint_url('opendatasoft', 'search', slug=connector.slug) |
191 | 201 |
assert endpoint == '/opendatasoft/my_connector/search' |
192 | 202 |
params = { |
193 | 203 |
'dataset': 'referentiel-adresse-test', |
194 | 204 |
'text_template': '{{numero}} {{nom_rue|safe}} {{nom_commun}}', |
195 | 205 |
'q': "rue de l'aubepine", |
196 |
- |