0001-opengis-feature_info-bad-params-22465.patch
passerelle/apps/opengis/models.py | ||
---|---|---|
218 | 218 |
'lon': {'description': _('Longitude'), 'example_value': '4.78414'}, |
219 | 219 |
}) |
220 | 220 |
def feature_info(self, request, lat, lon): |
221 |
lat, lon = float(lat), float(lon) |
|
221 |
try: |
|
222 |
lat, lon = float(lat), float(lon) |
|
223 |
except ValueError: |
|
224 |
raise APIError('Bad coordinates format') |
|
222 | 225 |
bbox = self.get_bbox(lon - 0.0001, lat - 0.0001, lon + 0.0001, lat + 0.0001) |
223 | 226 |
params = { |
224 | 227 |
'VERSION': '1.3.0', |
tests/test_opengis.py | ||
---|---|---|
260 | 260 |
assert mocked_get.call_args[1]['params']['CRS'] == 'EPSG:4326' |
261 | 261 | |
262 | 262 | |
263 |
@mock.patch('passerelle.utils.Request.get') |
|
264 |
@pytest.mark.parametrize('lat,lon', [ |
|
265 |
('bad-value', '4.784140'), |
|
266 |
('45.796890', 'bad-value'), |
|
267 |
]) |
|
268 |
def test_feature_info_bad_request(mocked_get, app, connector, lat, lon): |
|
269 |
endpoint = utils.generic_endpoint_url('opengis', 'feature_info', slug=connector.slug) |
|
270 |
assert endpoint == '/opengis/test/feature_info' |
|
271 |
mocked_get.return_value = utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200) |
|
272 |
resp = app.get(endpoint, params={'lat': lat, 'lon': lon}) |
|
273 |
assert resp.json['err'] == 1 |
|
274 |
assert resp.json['err_desc'] == 'Bad coordinates format' |
|
275 | ||
276 | ||
263 | 277 |
@mock.patch('passerelle.utils.Request.get') |
264 | 278 |
def test_tile(mocked_get, app, connector): |
265 | 279 |
endpoint = utils.generic_endpoint_url('opengis', 'tile', slug=connector.slug) |
266 |
- |