Projet

Général

Profil

0002-opengis-stop-using-uppercase-parameters-41224.patch

Valentin Deniaud, 01 avril 2020 16:19

Télécharger (8,41 ko)

Voir les différences:

Subject: [PATCH 2/2] opengis: stop using uppercase parameters (#41224)

 passerelle/apps/opengis/models.py | 48 +++++++++++++++----------------
 tests/test_opengis.py             | 26 ++++++++---------
 2 files changed, 37 insertions(+), 37 deletions(-)
passerelle/apps/opengis/models.py
121 121
        version_str = self.get_wfs_service_version()
122 122
        version_tuple = tuple(int(x) for x in version_str.split('.'))
123 123
        if version_tuple <= (1, 1, 0):
124
            return 'TYPENAME'
124
            return 'typename'
125 125
        else:
126
            return 'TYPENAMES'
126
            return 'typenames'
127 127

  
128 128
    def check_status(self):
129 129
        if self.wms_service_url:
......
261 261
            raise APIError('Bad coordinates format')
262 262
        bbox = self.get_bbox(lon - 0.0001, lat - 0.0001, lon + 0.0001, lat + 0.0001)
263 263
        params = {
264
            'VERSION': '1.3.0',
265
            'SERVICE': 'WMS',
266
            'REQUEST': 'GetFeatureInfo',
267
            'INFO_FORMAT': 'application/vnd.ogc.gml',
268
            'STYLES': '',
269
            'I': '24', 'J': '24',  # pixel in the middle of
270
            'HEIGHT': '50', 'WIDTH': '50',  # a 50x50 square
271
            'CRS': self.projection,
272
            'LAYERS': self.query_layer,
273
            'QUERY_LAYERS': self.query_layer,
274
            'BBOX': bbox,
264
            'version': '1.3.0',
265
            'service': 'WMS',
266
            'request': 'GetFeatureInfo',
267
            'info_format': 'application/vnd.ogc.gml',
268
            'styles': '',
269
            'i': '24', 'J': '24',  # pixel in the middle of
270
            'height': '50', 'WIDTH': '50',  # a 50x50 square
271
            'crs': self.projection,
272
            'layers': self.query_layer,
273
            'query_layers': self.query_layer,
274
            'bbox': bbox,
275 275
        }
276 276
        response = self.requests.get(self.wms_service_url, params=params)
277 277
        element = ET.fromstring(response.content)
......
299 299
        bbox = self.get_bbox(ll_lon, ll_lat, ur_lon, ur_lat)
300 300

  
301 301
        params = {
302
            'VERSION': '1.3.0',
303
            'SERVICE': 'WMS',
304
            'REQUEST': 'GetMap',
305
            'LAYERS': self.query_layer,
306
            'STYLES': '',
307
            'FORMAT': 'image/png',
308
            'TRANSPARENT': 'false',
309
            'HEIGHT': '256',
310
            'WIDTH': '256',
311
            'CRS': self.projection,
312
            'BBOX': bbox,
302
            'version': '1.3.0',
303
            'service': 'wMS',
304
            'request': 'getMap',
305
            'layers': self.query_layer,
306
            'styles': '',
307
            'format': 'image/png',
308
            'transparent': 'false',
309
            'height': '256',
310
            'width': '256',
311
            'crs': self.projection,
312
            'bbox': bbox,
313 313
        }
314 314
        response = self.requests.get(
315 315
            self.wms_service_url,
tests/test_opengis.py
283 283
    assert endpoint == '/opengis/test/feature_info'
284 284
    mocked_get.return_value = utils.FakedResponse(content=FAKE_FEATURE_INFO, status_code=200)
285 285
    resp = app.get(endpoint, params={'lat': '45.796890', 'lon': '4.784140'})
286
    assert mocked_get.call_args[1]['params']['BBOX'] == '532556.896735,5747844.261214,532579.160633,5747876.194333'
287
    assert mocked_get.call_args[1]['params']['CRS'] == 'EPSG:3857'
286
    assert mocked_get.call_args[1]['params']['bbox'] == '532556.896735,5747844.261214,532579.160633,5747876.194333'
287
    assert mocked_get.call_args[1]['params']['crs'] == 'EPSG:3857'
288 288
    assert (resp.json['data']
289 289
                     ['cad_cadastrecadparcelle_layer']
290 290
                     ['cad_cadastrecadparcelle_feature']
......
293 293
    connector.projection = 'EPSG:4326'
294 294
    connector.save()
295 295
    resp = app.get(endpoint, params={'lat': '45.796890', 'lon': '4.784140'})
296
    assert mocked_get.call_args[1]['params']['BBOX'] == '45.796790,4.784040,45.796990,4.784240'
297
    assert mocked_get.call_args[1]['params']['CRS'] == 'EPSG:4326'
296
    assert mocked_get.call_args[1]['params']['bbox'] == '45.796790,4.784040,45.796990,4.784240'
297
    assert mocked_get.call_args[1]['params']['crs'] == 'EPSG:4326'
298 298

  
299 299

  
300 300
@mock.patch('passerelle.utils.Request.get')
......
317 317
    assert endpoint == '/opengis/test/tile'
318 318
    mocked_get.return_value = utils.FakedResponse(content=b'\x89PNG\r\n\x1a\n\x00\x00...', status_code=200)
319 319
    resp = app.get(endpoint + '/16/33650/23378.png')
320
    assert mocked_get.call_args[1]['params']['CRS'] == 'EPSG:3857'
321
    assert mocked_get.call_args[1]['params']['BBOX'] == '539339.671580,5741338.068556,539951.167806,5741949.564782'
320
    assert mocked_get.call_args[1]['params']['crs'] == 'EPSG:3857'
321
    assert mocked_get.call_args[1]['params']['bbox'] == '539339.671580,5741338.068556,539951.167806,5741949.564782'
322 322
    connector.projection = 'EPSG:4326'
323 323
    connector.save()
324 324
    resp = app.get(endpoint + '/16/33650/23378.png')
325
    assert mocked_get.call_args[1]['params']['CRS'] == 'EPSG:4326'
326
    assert mocked_get.call_args[1]['params']['BBOX'] == '45.756026,4.844971,45.759859,4.850464'
325
    assert mocked_get.call_args[1]['params']['crs'] == 'EPSG:4326'
326
    assert mocked_get.call_args[1]['params']['bbox'] == '45.756026,4.844971,45.759859,4.850464'
327 327
    assert resp.content == b'\x89PNG\r\n\x1a\n\x00\x00...'
328 328

  
329 329

  
......
348 348
    resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
349 349
    assert mocked_get.call_args[1]['params']['request'] == 'GetFeature'
350 350
    assert mocked_get.call_args[1]['params']['propertyName'] == 'nom'
351
    assert mocked_get.call_args[1]['params']['TYPENAMES'] == 'ref_metro_limites_communales'
351
    assert mocked_get.call_args[1]['params']['typenames'] == 'ref_metro_limites_communales'
352 352
    assert 'json' in mocked_get.call_args[1]['params']['outputFormat']
353 353
    assert mocked_get.call_args[1]['params']['service'] == 'WFS'
354 354
    assert mocked_get.call_args[1]['params']['version'] == connector.get_wfs_service_version()
......
401 401
    })
402 402
    assert mocked_get.call_args[1]['params']['request'] == 'GetFeature'
403 403
    assert mocked_get.call_args[1]['params']['propertyName'] == 'nom'
404
    assert mocked_get.call_args[1]['params']['TYPENAMES'] == 'ref_metro_limites_communales'
404
    assert mocked_get.call_args[1]['params']['typenames'] == 'ref_metro_limites_communales'
405 405
    assert 'json' in mocked_get.call_args[1]['params']['outputFormat']
406 406
    assert mocked_get.call_args[1]['params']['service'] == 'WFS'
407 407
    assert mocked_get.call_args[1]['params']['version'] == connector.get_wfs_service_version()
......
422 422
    })
423 423
    assert mocked_get.call_args[1]['params']['request'] == 'GetFeature'
424 424
    assert mocked_get.call_args[1]['params']['propertyName'] == 'nom'
425
    assert mocked_get.call_args[1]['params']['TYPENAMES'] == 'ref_metro_limites_communales'
425
    assert mocked_get.call_args[1]['params']['typenames'] == 'ref_metro_limites_communales'
426 426
    assert 'json' in mocked_get.call_args[1]['params']['outputFormat']
427 427
    assert mocked_get.call_args[1]['params']['service'] == 'WFS'
428 428
    assert mocked_get.call_args[1]['params']['version'] == connector.get_wfs_service_version()
......
433 433

  
434 434

  
435 435
@pytest.mark.parametrize("server_responses, version, typename_label", [
436
    (geoserver_responses_v1_0_0, '1.0.0', 'TYPENAME'),
437
    (geoserver_responses, '2.0.0', 'TYPENAMES')])
436
    (geoserver_responses_v1_0_0, '1.0.0', 'typename'),
437
    (geoserver_responses, '2.0.0', 'typenames')])
438 438
@mock.patch('passerelle.utils.Request.get')
439 439
def test_typename_parameter_upgrade(mocked_get, server_responses, version, typename_label, app, connector):
440 440
    endpoint = utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
441
-