Skip to content

Commit

Permalink
Expand tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jun 29, 2023
1 parent 1b0f6f2 commit d58b881
Showing 1 changed file with 40 additions and 7 deletions.
47 changes: 40 additions & 7 deletions tests/src/python/test_qgstiledmeshlayer.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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)

Expand All @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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()

0 comments on commit d58b881

Please sign in to comment.