@@ -361,6 +361,24 @@ def testAddFeature(self):
361
361
# expect fail
362
362
self .assertFalse (l .dataProvider ().addFeatures ([f1 , f2 ]), 'Provider reported no AddFeatures capability, but returned true to addFeatures' )
363
363
364
+ def testAddFeaturesUpdateExtent (self ):
365
+ if not getattr (self , 'getEditableLayer' , None ):
366
+ return
367
+
368
+ l = self .getEditableLayer ()
369
+ self .assertTrue (l .isValid ())
370
+
371
+ self .assertEqual (l .dataProvider ().extent ().toString (1 ), '-71.1,66.3 : -65.3,78.3' )
372
+
373
+ if l .dataProvider ().capabilities () & QgsVectorDataProvider .AddFeatures :
374
+ f1 = QgsFeature ()
375
+ f1 .setAttributes ([6 , - 220 , NULL , 'String' , '15' ])
376
+ f1 .setGeometry (QgsGeometry .fromWkt ('Point (-50 90)' ))
377
+ l .dataProvider ().addFeatures ([f1 ])
378
+
379
+ l .dataProvider ().updateExtents ()
380
+ self .assertEqual (l .dataProvider ().extent ().toString (1 ), '-71.1,66.3 : -50.0,90.0' )
381
+
364
382
def testDeleteFeatures (self ):
365
383
if not getattr (self , 'getEditableLayer' , None ):
366
384
return
@@ -388,6 +406,23 @@ def testDeleteFeatures(self):
388
406
self .assertFalse (l .dataProvider ().deleteFeatures (to_delete ),
389
407
'Provider reported no DeleteFeatures capability, but returned true to deleteFeatures' )
390
408
409
+ def testDeleteFeaturesUpdateExtent (self ):
410
+ if not getattr (self , 'getEditableLayer' , None ):
411
+ return
412
+
413
+ l = self .getEditableLayer ()
414
+ self .assertTrue (l .isValid ())
415
+
416
+ self .assertEqual (l .dataProvider ().extent ().toString (1 ), '-71.1,66.3 : -65.3,78.3' )
417
+
418
+ to_delete = [f .id () for f in l .dataProvider ().getFeatures () if f .attributes ()[0 ] in [5 , 4 ]]
419
+
420
+ if l .dataProvider ().capabilities () & QgsVectorDataProvider .DeleteFeatures :
421
+ l .dataProvider ().deleteFeatures (to_delete )
422
+
423
+ l .dataProvider ().updateExtents ()
424
+ self .assertEqual (l .dataProvider ().extent ().toString (1 ), '-70.3,66.3 : -68.2,70.8' )
425
+
391
426
def testTruncate (self ):
392
427
if not getattr (self , 'getEditableLayer' , None ):
393
428
return
0 commit comments