Skip to content

Commit 6fed80b

Browse files
committedJun 5, 2017
Add a couple more tests for QgsVectorLayerSelectedFeatureSource
1 parent 405c55f commit 6fed80b

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed
 

‎src/core/qgsvectorlayerfeatureiterator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ QgsFeatureIterator QgsVectorLayerSelectedFeatureSource::getFeatures( const QgsFe
10261026
{
10271027
QgsFeatureRequest req( request );
10281028

1029-
if ( req.filterFids().isEmpty() && req.filterType() != QgsFeatureRequest::FilterFids )
1029+
if ( req.filterFids().isEmpty() && req.filterType() != QgsFeatureRequest::FilterFid )
10301030
{
10311031
req.setFilterFids( mSelectedFeatureIds );
10321032
}

‎tests/src/python/test_qgsvectorlayer.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2343,6 +2343,16 @@ def testQgsVectorLayerSelectedFeatureSource(self):
23432343
ids = set([f.id() for f in source.getFeatures()])
23442344
self.assertEqual(ids, {f1.id(), f3.id(), f5.id()})
23452345

2346+
# test that requesting subset of ids intersects this request with the selected ids
2347+
ids = set([f.id() for f in source.getFeatures(QgsFeatureRequest().setFilterFids([f1.id(), f2.id(), f5.id()]))])
2348+
self.assertEqual(ids, {f1.id(), f5.id()})
2349+
2350+
# test that requesting id works
2351+
ids = set([f.id() for f in source.getFeatures(QgsFeatureRequest().setFilterFid(f1.id()))])
2352+
self.assertEqual(ids, {f1.id()})
2353+
ids = set([f.id() for f in source.getFeatures(QgsFeatureRequest().setFilterFid(f5.id()))])
2354+
self.assertEqual(ids, {f5.id()})
2355+
23462356
# test that source has stored snapshot of selected features
23472357
layer.selectByIds([f2.id(), f4.id()])
23482358
self.assertEqual(source.featureCount(), 3)

0 commit comments

Comments
 (0)
Please sign in to comment.