Skip to content

Commit

Permalink
Merge pull request #64 from opengisch/geometryless_tests
Browse files Browse the repository at this point in the history
Add test coverage for geometryless layer packaging
  • Loading branch information
suricactus authored Feb 7, 2024
2 parents e3647e9 + f50ef5b commit 7d49f26
Show file tree
Hide file tree
Showing 6 changed files with 1,345 additions and 0 deletions.
3 changes: 3 additions & 0 deletions tests/data/geometryless_project/geometryless.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
key,description
1,Test key one
2,Test key two
Binary file added tests/data/geometryless_project/geometryless.ods
Binary file not shown.
Binary file added tests/data/geometryless_project/geometryless.xlsx
Binary file not shown.
1,284 changes: 1,284 additions & 0 deletions tests/data/geometryless_project/project.qgs

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions tests/test_offline_converter_minioffliner.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,35 @@ def test_primary_keys_custom_property(self):
layer = exported_project.mapLayersByName("somedata")[0]
self.assertEqual(layer.customProperty("QFieldSync/sourceDataPrimaryKeys"), "pk")

def test_geometryless_layers(self):
shutil.copytree(
self.data_dir.joinpath("geometryless_project"),
self.source_dir.joinpath("geometryless_project"),
)

project = self.load_project(
self.source_dir.joinpath("geometryless_project", "project.qgs")
)
offline_converter = OfflineConverter(
project,
str(self.target_dir),
"POLYGON((1 1, 5 0, 5 5, 0 5, 1 1))",
QgsProject.instance().crs().authid(),
["DCIM"],
PythonMiniOffliner(),
)
offline_converter.convert()

exported_project = self.load_project(
self.target_dir.joinpath("project_qfield.qgs")
)
layer = exported_project.mapLayersByName("csv")[0]
self.assertEqual(layer.featureCount(), 2)
layer = exported_project.mapLayersByName("ods")[0]
self.assertEqual(layer.featureCount(), 2)
layer = exported_project.mapLayersByName("xlsx")[0]
self.assertEqual(layer.featureCount(), 2)

def test_cloud_packaging_pk(self):
shutil.copytree(
self.data_dir.joinpath("simple_project"),
Expand Down
29 changes: 29 additions & 0 deletions tests/test_offline_converter_qgiscore.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,35 @@ def test_primary_keys_custom_property(self):
layer = exported_project.mapLayersByName("somedata")[0]
self.assertEqual(layer.customProperty("QFieldSync/sourceDataPrimaryKeys"), "pk")

def test_geometryless_layers(self):
shutil.copytree(
self.data_dir.joinpath("geometryless_project"),
self.source_dir.joinpath("geometryless_project"),
)

project = self.load_project(
self.source_dir.joinpath("geometryless_project", "project.qgs")
)
offline_converter = OfflineConverter(
project,
str(self.target_dir),
"POLYGON((1 1, 5 0, 5 5, 0 5, 1 1))",
QgsProject.instance().crs().authid(),
["DCIM"],
QgisCoreOffliner(),
)
offline_converter.convert()

exported_project = self.load_project(
self.target_dir.joinpath("project_qfield.qgs")
)
layer = exported_project.mapLayersByName("csv")[0]
self.assertEqual(layer.featureCount(), 2)
layer = exported_project.mapLayersByName("ods")[0]
self.assertEqual(layer.featureCount(), 2)
layer = exported_project.mapLayersByName("xlsx")[0]
self.assertEqual(layer.featureCount(), 2)

def test_cloud_packaging_pk(self):
shutil.copytree(
self.data_dir.joinpath("simple_project"),
Expand Down

0 comments on commit 7d49f26

Please sign in to comment.