Skip to content

Commit a19994e

Browse files
committed
Add test for filter expression on non provider fields
(cherry-picked from 353c0db)
1 parent f679daa commit a19994e

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

tests/src/python/test_qgsvectorlayer.py

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def checkBefore():
159159
checkAfter()
160160
assert layer.dataProvider().featureCount() == 1
161161

162-
#DELETE FEATURE
162+
# DELETE FEATURE
163163

164164
def test_DeleteFeature(self):
165165
layer = createLayerWithOnePoint()
@@ -258,7 +258,7 @@ def checkAfter2():
258258

259259
assert layer.dataProvider().featureCount() == 0
260260

261-
#CHANGE ATTRIBUTE
261+
# CHANGE ATTRIBUTE
262262

263263
def test_ChangeAttribute(self):
264264
layer = createLayerWithOnePoint()
@@ -347,8 +347,8 @@ def checkBefore():
347347
assert layer.commitChanges()
348348
checkAfter()
349349

350-
#print "COMMIT ERRORS:"
351-
#for item in list(layer.commitErrors()): print item
350+
# print "COMMIT ERRORS:"
351+
# for item in list(layer.commitErrors()): print item
352352

353353
# CHANGE GEOMETRY
354354

@@ -471,8 +471,8 @@ def checkBefore():
471471
assert layer.commitChanges()
472472
checkAfter()
473473

474-
#print "COMMIT ERRORS:"
475-
#for item in list(layer.commitErrors()): print item
474+
# print "COMMIT ERRORS:"
475+
# for item in list(layer.commitErrors()): print item
476476

477477
# ADD ATTRIBUTE
478478

@@ -517,7 +517,7 @@ def checkAfter():
517517
assert f2[1] == 123
518518
assert f2[2] is None
519519

520-
#for nt in layer.dataProvider().nativeTypes():
520+
# for nt in layer.dataProvider().nativeTypes():
521521
# print (nt.mTypeDesc, nt.mTypeName, nt.mType, nt.mMinLen,
522522
# nt.mMaxLen, nt.mMinPrec, nt.mMaxPrec)
523523
assert layer.dataProvider().supportedType(fld1)
@@ -591,8 +591,8 @@ def checkAfter():
591591
layer.commitChanges()
592592
checkAfter()
593593

594-
#print "COMMIT ERRORS:"
595-
#for item in list(layer.commitErrors()): print item
594+
# print "COMMIT ERRORS:"
595+
# for item in list(layer.commitErrors()): print item
596596

597597
def test_AddAttributeAfterChangeValue(self):
598598
pass # not interesting to test...?
@@ -634,7 +634,7 @@ def checkBefore():
634634

635635
def checkAfterOneDelete():
636636
flds = layer.pendingFields()
637-
#for fld in flds: print "FLD", fld.name()
637+
# for fld in flds: print "FLD", fld.name()
638638
assert len(flds) == 2
639639
assert flds[0].name() == "fldint"
640640
assert flds[1].name() == "flddouble"
@@ -654,7 +654,7 @@ def checkAfterOneDelete():
654654
def checkAfterTwoDeletes():
655655
assert layer.pendingAllAttributesList() == [0]
656656
flds = layer.pendingFields()
657-
#for fld in flds: print "FLD", fld.name()
657+
# for fld in flds: print "FLD", fld.name()
658658
assert len(flds) == 1
659659
assert flds[0].name() == "flddouble"
660660

@@ -976,6 +976,19 @@ def test_ExpressionField(self):
976976

977977
assert(layer.pendingFields().count() == cnt)
978978

979+
def test_ExpressionFilter(self):
980+
layer = createLayerWithOnePoint()
981+
982+
idx = layer.addExpressionField('5', QgsField('test', QVariant.LongLong))
983+
984+
features = layer.getFeatures(QgsFeatureRequest().setFilterExpression('"test" = 6'))
985+
986+
assert(len(list(features)) == 0)
987+
988+
features = layer.getFeatures(QgsFeatureRequest().setFilterExpression('"test" = 5'))
989+
990+
assert(len(list(features)) == 1)
991+
979992
def onLayerTransparencyChanged(self, tr):
980993
self.transparencyTest = tr
981994

0 commit comments

Comments
 (0)