@@ -55,6 +55,7 @@ def setUpClass(cls) -> None:
5555 super ().setUpClass ()
5656 cls .user = get_user_model ().objects .exclude (username = "Anonymous" ).first ()
5757 cls .valid_gkpg = f"{ project_dir } /tests/fixture/valid.gpkg"
58+ cls .valid_multiple_layers_gkpg = f"{ project_dir } /tests/fixture/multiple_layers.gpkg"
5859 cls .valid_geojson = f"{ project_dir } /tests/fixture/valid.geojson"
5960 cls .no_crs_gpkg = f"{ project_dir } /tests/fixture/noCrsTable.gpkg"
6061 file_path = gisdata .PROJECT_ROOT
@@ -132,9 +133,9 @@ def _assertimport(
132133 while (
133134 ExecutionRequest .objects .get (exec_id = response .json ().get ("execution_id" ))
134135 != ExecutionRequest .STATUS_FINISHED
135- and tentative <= 10
136+ and tentative <= 15
136137 ):
137- time .sleep (10 )
138+ time .sleep (2 )
138139 tentative += 1
139140 exc_obj = ExecutionRequest .objects .get (exec_id = response .json ().get ("execution_id" ))
140141 if exc_obj .status != ExecutionRequest .STATUS_FINISHED :
@@ -228,6 +229,27 @@ def test_file_upload_permissions_none_uploads_successfully(self):
228229 self ._cleanup_layers (name = "stazioni_metropolitana" )
229230
230231
232+ class ImporterMultupleGeoPackageImportTest (BaseImporterEndToEndTest ):
233+ @mock .patch .dict (os .environ , {"GEONODE_GEODATABASE" : "test_geonode_data" })
234+ @override_settings (GEODATABASE_URL = f"{ geourl .split ('/geonode_data' )[0 ]} /test_geonode_data" )
235+ def test_import_multiple_layers_from_geopackage (self ):
236+ self ._cleanup_layers (name = "area" )
237+ self ._cleanup_layers (name = "example" )
238+ try :
239+ resource = None
240+ payload = {"base_file" : open (self .valid_multiple_layers_gkpg , "rb" ), "action" : "upload" }
241+ self ._assertimport (payload , "area" )
242+ resource = ResourceBase .objects .filter (
243+ Q (alternate__icontains = "geonode:example" ) | Q (alternate__icontains = "example" )
244+ )
245+ self .assertTrue (resource .exists ())
246+ finally :
247+ if resource .first ():
248+ resource .first ().delete ()
249+ self ._cleanup_layers (name = "area" )
250+ self ._cleanup_layers (name = "example" )
251+
252+
231253class ImporterNoCRSImportTest (BaseImporterEndToEndTest ):
232254 @override_settings (ASYNC_SIGNALS = False )
233255 @mock .patch .dict (os .environ , {"GEONODE_GEODATABASE" : "test_geonode_data" })
0 commit comments