diff --git a/openpoiservice/server/api/views.py b/openpoiservice/server/api/views.py index d5da0a9..4433e6e 100755 --- a/openpoiservice/server/api/views.py +++ b/openpoiservice/server/api/views.py @@ -237,6 +237,9 @@ def parse_geometries(geometry): # parse geom if valid geojson_obj = check_validity(g2) + if geojson_obj.is_empty: + raise api_exceptions.InvalidUsage(status_code=400, error_code=4007, message=str("geojson is empty")) + if geojson_obj.geom_type == 'Point': check_for_buffer(geometry, ops_settings['maximum_search_radius_for_points']) diff --git a/openpoiservice/tests/base.py b/openpoiservice/tests/base.py index 66eabc3..f1c1904 100755 --- a/openpoiservice/tests/base.py +++ b/openpoiservice/tests/base.py @@ -20,7 +20,7 @@ def setUp(self): db.session.remove() db.engine.dispose() test_file = os.path.join(os.getcwd() + '/osm', 'bremen-tests.osm.pbf') - parser.parse_file(test_file) + parser.parse_file(test_file, 0, False) def tearDown(self): db.session.remove() diff --git a/openpoiservice/tests/test_update.py b/openpoiservice/tests/test_update.py index 4b45d0f..51ba8ca 100644 --- a/openpoiservice/tests/test_update.py +++ b/openpoiservice/tests/test_update.py @@ -4,6 +4,7 @@ import json from base import BaseTestCase from openpoiservice.server.db_import import parser +from openpoiservice.server import db request_poi_bbox = dict( request='pois', @@ -18,7 +19,7 @@ def test_import_update_mode(self): print("======== Perform database update =========") updated_test_file = os.path.join(os.getcwd() + '/osm_test', 'bremen-tests-mod.osm.pbf') - parser.run_import([updated_test_file], {}) + parser.run_import([updated_test_file], {}, db) response = self.client.post('/pois', data=json.dumps(request_poi_bbox), content_type='application/json') self.assertEqual(response.status_code, 200)