mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
Add a provider unit test checking extent after adding/deleting features
This commit is contained in:
parent
6a87889efc
commit
10341310c2
@ -361,6 +361,24 @@ class ProviderTestCase(FeatureSourceTestCase):
|
||||
# expect fail
|
||||
self.assertFalse(l.dataProvider().addFeatures([f1, f2]), 'Provider reported no AddFeatures capability, but returned true to addFeatures')
|
||||
|
||||
def testAddFeaturesUpdateExtent(self):
|
||||
if not getattr(self, 'getEditableLayer', None):
|
||||
return
|
||||
|
||||
l = self.getEditableLayer()
|
||||
self.assertTrue(l.isValid())
|
||||
|
||||
self.assertEqual(l.dataProvider().extent().toString(1), '-71.1,66.3 : -65.3,78.3')
|
||||
|
||||
if l.dataProvider().capabilities() & QgsVectorDataProvider.AddFeatures:
|
||||
f1 = QgsFeature()
|
||||
f1.setAttributes([6, -220, NULL, 'String', '15'])
|
||||
f1.setGeometry(QgsGeometry.fromWkt('Point (-50 90)'))
|
||||
l.dataProvider().addFeatures([f1])
|
||||
|
||||
l.dataProvider().updateExtents()
|
||||
self.assertEqual(l.dataProvider().extent().toString(1), '-71.1,66.3 : -50.0,90.0')
|
||||
|
||||
def testDeleteFeatures(self):
|
||||
if not getattr(self, 'getEditableLayer', None):
|
||||
return
|
||||
@ -388,6 +406,23 @@ class ProviderTestCase(FeatureSourceTestCase):
|
||||
self.assertFalse(l.dataProvider().deleteFeatures(to_delete),
|
||||
'Provider reported no DeleteFeatures capability, but returned true to deleteFeatures')
|
||||
|
||||
def testDeleteFeaturesUpdateExtent(self):
|
||||
if not getattr(self, 'getEditableLayer', None):
|
||||
return
|
||||
|
||||
l = self.getEditableLayer()
|
||||
self.assertTrue(l.isValid())
|
||||
|
||||
self.assertEqual(l.dataProvider().extent().toString(1), '-71.1,66.3 : -65.3,78.3')
|
||||
|
||||
to_delete = [f.id() for f in l.dataProvider().getFeatures() if f.attributes()[0] in [5, 4]]
|
||||
|
||||
if l.dataProvider().capabilities() & QgsVectorDataProvider.DeleteFeatures:
|
||||
l.dataProvider().deleteFeatures(to_delete)
|
||||
|
||||
l.dataProvider().updateExtents()
|
||||
self.assertEqual(l.dataProvider().extent().toString(1), '-70.3,66.3 : -68.2,70.8')
|
||||
|
||||
def testTruncate(self):
|
||||
if not getattr(self, 'getEditableLayer', None):
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user