diff --git a/combo/apps/maps/models.py b/combo/apps/maps/models.py index 8119c934..dde62eca 100644 --- a/combo/apps/maps/models.py +++ b/combo/apps/maps/models.py @@ -241,6 +241,12 @@ class MapLayer(models.Model): 'features': [], '_combo_err_desc': "Non JSON response from requested URL", } + if data is None: + return { + 'type': 'FeatureCollection', + 'features': [], + '_combo_err_desc': "Empty JSON response", + } if 'features' in data: features = data['features'] else: diff --git a/tests/test_maps_cells.py b/tests/test_maps_cells.py index 03ad027b..fce9c674 100644 --- a/tests/test_maps_cells.py +++ b/tests/test_maps_cells.py @@ -304,6 +304,11 @@ def test_get_geojson(app, layer, user): assert len(resp.json['features']) == 0 assert resp.json['_combo_err_desc'] == 'Non JSON response from requested URL' + mock_resp.json = lambda: None + resp = app.get(geojson_url) + assert len(resp.json['features']) == 0 + assert resp.json['_combo_err_desc'] == 'Empty JSON response' + mock_resp.status_code = 500 resp = app.get(geojson_url) assert len(resp.json['features']) == 0