Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jul 25, 2021
1 parent 0c61111 commit 9b412a4
Showing 1 changed file with 17 additions and 14 deletions.
31 changes: 17 additions & 14 deletions tests/src/python/test_provider_ogr.py
Expand Up @@ -45,7 +45,8 @@
QgsNotSupportedException,
QgsMapLayerType,
QgsProviderSublayerDetails,
Qgis
Qgis,
QgsDirectoryItem
)
from qgis.testing import start_app, unittest
from qgis.utils import spatialite_connect
Expand Down Expand Up @@ -451,16 +452,15 @@ def testEditGeoJsonAddFieldAndThenAddFeatures(self):
self.assertEqual(len(vl.fields()), 2)

def testDataItems(self):

registry = QgsApplication.dataItemProviderRegistry()
ogrprovider = next(provider for provider in registry.providers() if provider.name() == 'OGR')
dataitem = QgsDirectoryItem(None, 'name', unitTestDataPath())
children = dataitem.createChildren()

# Single layer
item = ogrprovider.createDataItem(os.path.join(TEST_DATA_DIR, 'lines.shp'), None)
item = [i for i in children if i.path().endswith('lines.shp')][0]
self.assertTrue(item.uri().endswith('lines.shp'))

# Multiple layer
item = ogrprovider.createDataItem(os.path.join(TEST_DATA_DIR, 'multilayer.kml'), None)
item = [i for i in children if i.path().endswith('multilayer.kml')][0]
children = item.createChildren()
self.assertEqual(len(children), 2)
self.assertIn('multilayer.kml|layername=Layer1', children[0].uri())
Expand All @@ -472,24 +472,27 @@ def testDataItems(self):
lyr = ds.CreateLayer('Layer1', geom_type=ogr.wkbPoint)
lyr = ds.CreateLayer('Layer2', geom_type=ogr.wkbPoint)
ds = None
item = ogrprovider.createDataItem(tmpfile, None)

dataitem = QgsDirectoryItem(None, 'name', self.basetestpath)
children = dataitem.createChildren()
item = [i for i in children if i.path().endswith('testDataItems.gpkg')][0]

children = item.createChildren()
self.assertEqual(len(children), 2)
self.assertIn('testDataItems.gpkg|layername=Layer1', children[0].uri())
self.assertIn('testDataItems.gpkg|layername=Layer2', children[1].uri())

def testDataItemsRaster(self):

registry = QgsApplication.dataItemProviderRegistry()
ogrprovider = next(provider for provider in registry.providers() if provider.name() == 'OGR')
dataitem = QgsDirectoryItem(None, 'name', unitTestDataPath())
dir_children = dataitem.createChildren()

# Multiple layer (geopackage)
path = os.path.join(unitTestDataPath(), 'two_raster_layers.gpkg')
item = ogrprovider.createDataItem(path, None)
item = [i for i in dir_children if i.path().endswith('two_raster_layers.gpkg')][0]
children = item.createChildren()

self.assertEqual(len(children), 2)
self.assertIn('GPKG:' + path + ':layer01', children[0].uri())
self.assertIn('GPKG:' + path + ':layer02', children[1].uri())
self.assertIn('GPKG:' + unitTestDataPath() + '/two_raster_layers.gpkg:layer01', children[0].uri())
self.assertIn('GPKG:' + unitTestDataPath() + '/two_raster_layers.gpkg:layer02', children[1].uri())

def testOSM(self):
""" Test that opening several layers of the same OSM datasource works properly """
Expand Down

0 comments on commit 9b412a4

Please sign in to comment.