diff --git a/docker-compose-test.yaml b/docker-compose-test.yaml index 22831a1f..d86c2c4d 100644 --- a/docker-compose-test.yaml +++ b/docker-compose-test.yaml @@ -27,6 +27,7 @@ services: - geoserver-data-dir:/geoserver_data/data - data:/data - tmp:/tmp + - .:/usr/src/importer # Geoserver backend diff --git a/importer/handlers/common/tests_vector.py b/importer/handlers/common/tests_vector.py index fab03353..a17d9d7c 100644 --- a/importer/handlers/common/tests_vector.py +++ b/importer/handlers/common/tests_vector.py @@ -226,7 +226,7 @@ def test_import_with_ogr2ogr_without_errors_should_call_the_right_command( _open.assert_called_once() _open.assert_called_with( - f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + {os.getenv('DATABASE_HOST', 'localhost')} + '} port=5432 user=\'geonode_data\' password=\'geonode_data\' " "{self.valid_files.get("base_file")}" -nln alternate "dataset"', + f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + os.getenv('DATABASE_HOST', 'localhost') + '} port=5432 user=\'geonode_data\' password=\'geonode_data\' " ' + self.valid_files.get("base_file") + ' -nln alternate "dataset"', stdout=-1, stderr=-1, shell=True, # noqa @@ -252,7 +252,7 @@ def test_import_with_ogr2ogr_with_errors_should_raise_exception(self, _open): _open.assert_called_once() _open.assert_called_with( - f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + {os.getenv('DATABASE_HOST', 'localhost')} + '} port=5432 user=\'geonode_data\' password=\'geonode_data\' " "{self.valid_files.get("base_file")}" -nln alternate "dataset"', + f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + {os.getenv('DATABASE_HOST', 'localhost')} + '} port=5432 user=\'geonode_data\' password=\'geonode_data\' " ' + self.valid_shp.get("base_file") + ' -nln alternate "dataset"', stdout=-1, stderr=-1, shell=True, # noqa diff --git a/importer/handlers/csv/tests.py b/importer/handlers/csv/tests.py index 0a7281d1..f9da9395 100644 --- a/importer/handlers/csv/tests.py +++ b/importer/handlers/csv/tests.py @@ -165,7 +165,7 @@ def test_import_with_ogr2ogr_without_errors_should_call_the_right_command( _open.assert_called_once() _open.assert_called_with( - f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + {os.getenv('DATABASE_HOST', 'localhost')} + '} port=5432 user=\'geonode_data\' password=\'geonode_data\' " "{self.valid_csv}" -nln alternate "dataset" -oo KEEP_GEOM_COLUMNS=NO -lco GEOMETRY_NAME=geometry -oo "GEOM_POSSIBLE_NAMES=geom*,the_geom*,wkt_geom" -oo "X_POSSIBLE_NAMES=x,long*" -oo "Y_POSSIBLE_NAMES=y,lat*"', + f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + os.getenv('DATABASE_HOST', 'localhost') + '} port=5432 user=\'geonode_data\' password=\'geonode_data\' "' + {self.valid_csv} + '" -nln alternate "dataset" -oo KEEP_GEOM_COLUMNS=NO -lco GEOMETRY_NAME=geometry -oo "GEOM_POSSIBLE_NAMES=geom*,the_geom*,wkt_geom" -oo "X_POSSIBLE_NAMES=x,long*" -oo "Y_POSSIBLE_NAMES=y,lat*"', stdout=-1, stderr=-1, shell=True, # noqa diff --git a/importer/handlers/geojson/tests.py b/importer/handlers/geojson/tests.py index 0836f13b..32956149 100644 --- a/importer/handlers/geojson/tests.py +++ b/importer/handlers/geojson/tests.py @@ -131,7 +131,7 @@ def test_import_with_ogr2ogr_without_errors_should_call_the_right_command( _open.assert_called_once() _open.assert_called_with( - f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + {os.getenv('DATABASE_HOST', 'localhost')} + 'port=5432 user=\'geonode_data\' password=\'geonode_data\' " "{self.valid_files.get("base_file")}" -nln alternate "dataset" -lco GEOMETRY_NAME=geometry', + f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + os.getenv('DATABASE_HOST', 'localhost') + 'port=5432 user=\'geonode_data\' password=\'geonode_data\' "' + self.valid_files.get("base_file") + '" -nln alternate "dataset" -lco GEOMETRY_NAME=geometry', stdout=-1, stderr=-1, shell=True, # noqa diff --git a/importer/handlers/gpkg/tests.py b/importer/handlers/gpkg/tests.py index 374107df..6f171088 100644 --- a/importer/handlers/gpkg/tests.py +++ b/importer/handlers/gpkg/tests.py @@ -58,7 +58,7 @@ def test_is_valid_should_raise_exception_if_the_gpkg_is_invalid(self): self.assertIsNotNone(_exc) print(_exc.exception.detail) self.assertTrue( - "Layer names must start with a letter, and valid characters are lowercase a-z, numbers or underscores." + "Layer names must start with a letter, and valid characters are lowercase a-z, numbers or underscores" in str(_exc.exception.detail) ) diff --git a/importer/handlers/shapefile/tests.py b/importer/handlers/shapefile/tests.py index 45c2cf17..de32949c 100644 --- a/importer/handlers/shapefile/tests.py +++ b/importer/handlers/shapefile/tests.py @@ -148,7 +148,7 @@ def test_import_with_ogr2ogr_without_errors_should_call_the_right_command( _open.assert_called_once() _open.assert_called_with( - f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + {os.getenv('DATABASE_HOST', 'localhost')} + ' port=5432 user=\'geonode_data\' password=\'geonode_data\' " "{self.valid_shp.get("base_file")}" -nln alternate "dataset" -lco precision=no -lco GEOMETRY_NAME=geometry ', + f'/usr/bin/ogr2ogr --config PG_USE_COPY YES -f PostgreSQL PG:" dbname=\'test_geonode_data\' host=' + os.getenv('DATABASE_HOST', 'localhost') + ' port=5432 user=\'geonode_data\' password=\'geonode_data\' "' + self.valid_shp.get("base_file") + '" -nln alternate "dataset" -lco precision=no -lco GEOMETRY_NAME=geometry ', stdout=-1, stderr=-1, shell=True, # noqa diff --git a/importer/tests/unit/test_models.py b/importer/tests/unit/test_models.py index ca1f2602..1996dd69 100644 --- a/importer/tests/unit/test_models.py +++ b/importer/tests/unit/test_models.py @@ -1,14 +1,16 @@ +import os from dynamic_models.models import ModelSchema, FieldSchema +import mock from geonode.base.populate_test_data import create_single_dataset from importer.models import ResourceHandlerInfo from importer.tests.utils import TransactionImporterBaseTestSupport - +import uuid class TestModelSchemaSignal(TransactionImporterBaseTestSupport): databases = ("default", "datastore") def setUp(self): - self.resource = create_single_dataset(name="test_dataset") + self.resource = create_single_dataset(name=f"test_dataset_{uuid.uuid4()}") ResourceHandlerInfo.objects.create( resource=self.resource, handler_module_path="importer.handlers.shapefile.handler.ShapeFileHandler", @@ -22,6 +24,7 @@ def setUp(self): model_schema=self.dynamic_model, ) + @mock.patch.dict(os.environ, {"IMPORTER_ENABLE_DYN_MODELS": "True"}) def test_delete_dynamic_model(self): """ Ensure that the dynamic model is deleted diff --git a/importer/tests/unit/test_publisher.py b/importer/tests/unit/test_publisher.py index 6bf46771..a4d96d55 100644 --- a/importer/tests/unit/test_publisher.py +++ b/importer/tests/unit/test_publisher.py @@ -4,6 +4,7 @@ from importer import project_dir from importer.publisher import DataPublisher from unittest.mock import MagicMock +from geonode.geoserver.helpers import create_geoserver_db_featurestore class TestDataPublisher(TestCase): @@ -66,6 +67,12 @@ def test_extract_resource_name_and_crs_return_empty_if_the_file_does_not_exists( @patch("importer.publisher.create_geoserver_db_featurestore") def test_get_or_create_store_creation_should_not_be_called(self, datastore): + try: + create_geoserver_db_featurestore( + store_name="geonode_data", workspace=self.workspace.name + ) + except: + pass self.publisher.get_or_create_store() datastore.assert_not_called()