Compare commits
19 Commits
ecc80ea82c
...
e9fcbba3e4
Author | SHA1 | Date |
---|---|---|
Nicolas Roche | e9fcbba3e4 | |
Nicolas Roche | 297d0dd5db | |
Nicolas Roche | 0ea7df17cf | |
Nicolas Roche | 52b794c975 | |
Nicolas Roche | a577b95fe5 | |
Nicolas Roche | 78f89d48d7 | |
Nicolas Roche | 23e23450b5 | |
Nicolas Roche | 8abd59cd05 | |
Nicolas Roche | 75c5d2dfea | |
Nicolas Roche | 36b6d1e341 | |
Nicolas Roche | aaccbaf9ce | |
Nicolas Roche | 29f626492a | |
Nicolas Roche | 667495eac5 | |
Nicolas Roche | f711b0debf | |
Nicolas Roche | a0fb5681ce | |
Nicolas Roche | e5bf8f78d6 | |
Nicolas Roche | 8eaa3a086f | |
Nicolas Roche | 1ef18125d4 | |
Nicolas Roche | 4a0d71b20e |
|
@ -16,7 +16,6 @@
|
|||
|
||||
import json
|
||||
import os
|
||||
import zipfile
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
@ -418,10 +417,7 @@ class Demand(models.Model):
|
|||
|
||||
path = os.path.join(self.resource.output_dir, zip_file)
|
||||
|
||||
try:
|
||||
content = get_file_content_from_zip(path, 'message.xml')
|
||||
except zipfile.BadZipFile:
|
||||
raise APIError('zipfile error')
|
||||
content = get_file_content_from_zip(path, 'message.xml')
|
||||
element = mdel.etree.fromstring(content)
|
||||
majs = element.findall('ns2:Body/*/*/*/ns2:Maj', namespace)
|
||||
|
||||
|
|
|
@ -215,16 +215,12 @@ class OpenGIS(BaseResource):
|
|||
response = self.requests.get(self.wfs_service_url, params=params)
|
||||
data = []
|
||||
try:
|
||||
json_response = response.json()
|
||||
response = response.json()
|
||||
except ValueError:
|
||||
self.handle_opengis_error(response)
|
||||
# if handle_opengis_error did not raise an error, we raise a generic one
|
||||
raise APIError('OpenGIS Error: unparsable error', data={'content': repr(response.content[:1024])})
|
||||
if not isinstance(json_response, dict) or 'features' not in json_response:
|
||||
raise APIError(
|
||||
'OpenGIS Error: bad result format', data={'content': repr(response.content[:1024])}
|
||||
)
|
||||
for feature in json_response['features']:
|
||||
for feature in response['features']:
|
||||
feature['text'] = feature['properties'].get(property_name)
|
||||
data.append(feature)
|
||||
return {'data': data}
|
||||
|
|
|
@ -551,13 +551,6 @@ def test_get_status(app, setup):
|
|||
assert data['comment'] == 'Dossier accepté'
|
||||
assert Demand.objects.get(demand_id='102-2-AEC-LA').status == 'accepted'
|
||||
|
||||
# bad zipfile
|
||||
filepath = os.path.join(get_resource_base_dir(), 'test', 'outputs', '102-2-aec-la--4.zip')
|
||||
with open(filepath, 'w') as f:
|
||||
f.write(' ')
|
||||
resp = app.get('/mdel/test/status', params={'demand_id': '102-2-AEC-LA'}, status=200)
|
||||
assert resp.json['err_desc'] == 'zipfile error'
|
||||
|
||||
|
||||
def test_get_status_unknown_demand(app, setup):
|
||||
resp = app.get('/mdel/test/status', params={'demand_id': '1-14-ILE-LA'})
|
||||
|
|
|
@ -585,34 +585,6 @@ def test_get_feature_error2(mocked_get, app, connector):
|
|||
assert '<ows:' in result['data']['content']
|
||||
|
||||
|
||||
@mock.patch('passerelle.utils.Request.get')
|
||||
def test_get_feature_bad_result(mocked_get, app, connector):
|
||||
def keyerror(url, **kwargs):
|
||||
if kwargs['params'].get('request') == 'GetCapabilities':
|
||||
assert kwargs['params'].get('service')
|
||||
return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
|
||||
return tests.utils.FakedResponse(status_code=200, content=json.dumps({}))
|
||||
|
||||
endpoint = tests.utils.generic_endpoint_url('opengis', 'features', slug=connector.slug)
|
||||
mocked_get.side_effect = keyerror
|
||||
resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'OpenGIS Error: bad result format'
|
||||
assert resp.json['data'] == {'content': "'{}'"}
|
||||
|
||||
def typeerror(url, **kwargs):
|
||||
if kwargs['params'].get('request') == 'GetCapabilities':
|
||||
assert kwargs['params'].get('service')
|
||||
return tests.utils.FakedResponse(status_code=200, content=FAKE_SERVICE_CAPABILITIES)
|
||||
return tests.utils.FakedResponse(status_code=200, content=json.dumps([]))
|
||||
|
||||
mocked_get.side_effect = typeerror
|
||||
resp = app.get(endpoint, params={'type_names': 'ref_metro_limites_communales', 'property_name': 'nom'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'OpenGIS Error: bad result format'
|
||||
assert resp.json['data'] == {'content': "'[]'"}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"server_responses, version, typename_label",
|
||||
[(geoserver_responses_v1_0_0, '1.0.0', 'typename'), (geoserver_responses, '2.0.0', 'typenames')],
|
||||
|
|
Loading…
Reference in New Issue