From c29ce5fcf7dc6b6466d5821af469a84dfc316c85 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 28 Jun 2023 20:36:57 +1000 Subject: [PATCH] Expand tests --- tests/src/python/test_qgstiledmeshlayer.py | 47 ++++++++++++++++++---- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/tests/src/python/test_qgstiledmeshlayer.py b/tests/src/python/test_qgstiledmeshlayer.py index fa17a5f07d00..a1e357ee57d0 100644 --- a/tests/src/python/test_qgstiledmeshlayer.py +++ b/tests/src/python/test_qgstiledmeshlayer.py @@ -15,10 +15,13 @@ from qgis.PyQt.QtGui import QPainter from qgis.core import ( + Qgis, QgsTiledMeshLayer, QgsReadWriteContext, QgsLayerNotesUtils, - QgsMapLayer + QgsMapLayer, + QgsTiledMeshDataProvider, + QgsProviderRegistry ) from qgis.testing import start_app, unittest @@ -29,12 +32,22 @@ class TestQgsTiledMeshLayer(unittest.TestCase): + def test_data_provider(self): + """ + Test data provider creation + """ + layer = QgsTiledMeshLayer('/home/me/test/tileset.json', 'my layer', 'cesium') + self.assertEqual(layer.providerType(), 'cesium') + self.assertIsInstance(layer.dataProvider(), QgsTiledMeshDataProvider) + self.assertEqual(layer.dataProvider().name(), 'cesium') + self.assertEqual(layer.dataProvider().dataSourceUri(), '/home/me/test/tileset.json') + def test_read_write_xml(self): """ Test saving and restoring layer from xml """ - layer = QgsTiledMeshLayer('uri', 'my layer', 'tiled_mesh') - self.assertEqual(layer.providerType(), 'tiled_mesh') + layer = QgsTiledMeshLayer('uri', 'my layer', 'cesium') + self.assertEqual(layer.providerType(), 'cesium') layer.setOpacity(0.25) layer.setBlendMode(QPainter.CompositionMode_Darken) @@ -44,7 +57,7 @@ def test_read_write_xml(self): layer2 = QgsTiledMeshLayer('uri2', 'my layer 2', 'xtiled_meshx') layer2.readXml(elem, QgsReadWriteContext()) - self.assertEqual(layer2.providerType(), 'tiled_mesh') + self.assertEqual(layer2.providerType(), 'cesium') self.assertEqual(layer2.opacity(), 0.25) self.assertEqual(layer2.blendMode(), QPainter.CompositionMode_Darken) @@ -53,14 +66,14 @@ def test_clone(self): """ Test cloning layers """ - layer = QgsTiledMeshLayer('uri', 'my layer', 'tiled_mesh') - self.assertEqual(layer.providerType(), 'tiled_mesh') + layer = QgsTiledMeshLayer('uri', 'my layer', 'cesium') + self.assertEqual(layer.providerType(), 'cesium') layer.setOpacity(0.25) layer.setBlendMode(QPainter.CompositionMode_Darken) layer2 = layer.clone() self.assertEqual(layer2.source(), 'uri') - self.assertEqual(layer2.providerType(), 'tiled_mesh') + self.assertEqual(layer2.providerType(), 'cesium') self.assertEqual(layer2.opacity(), 0.25) self.assertEqual(layer2.blendMode(), QPainter.CompositionMode_Darken) @@ -132,6 +145,26 @@ def test_read_write_symbology(self): layer2.readSymbology(elem, error, context, QgsMapLayer.Notes) self.assertEqual(QgsLayerNotesUtils.layerNotes(layer2), 'my notes') + def test_cesium_provider_metadata(self): + """ + Test cesium provider metadata methods + """ + self.assertIn( + 'cesium', + QgsProviderRegistry.instance().providersForLayerType(Qgis.LayerType.TiledMesh) + ) + + metadata = QgsProviderRegistry.instance().providerMetadata('cesium') + self.assertIsNotNone(metadata) + + self.assertEqual(metadata.decodeUri('/home/me/test/tileset.json'), + {'file-name': 'tileset.json', 'path': '/home/me/test/tileset.json'}) + self.assertEqual( + metadata.encodeUri( + {'file-name': 'tileset.json', 'path': '/home/me/test/tileset.json'} + ), + '/home/me/test/tileset.json') + if __name__ == '__main__': unittest.main()