Skip to content

Commit 97de55d

Browse files
committed
Add new postgres provider test
1 parent 8571ae7 commit 97de55d

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

tests/src/python/providertestutils.py

+16-9
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,22 @@
1212
# This will get replaced with a git SHA1 when you do a git archive
1313
__revision__ = '$Format:%H$'
1414

15+
from qgis.core import QgsRectangle, QgsFeatureRequest
16+
1517
def runGetFeatureTests( vl ):
1618
assert len( [f for f in vl.getFeatures()] ) == 5
17-
assert len( [f for f in vl.getFeatures( 'name IS NOT NULL' )] ) == 4
18-
assert len( [f for f in vl.getFeatures( 'name LIKE \'Apple\'' )] ) == 1
19-
assert len( [f for f in vl.getFeatures( 'name ILIKE \'aPple\'' )] ) == 1
20-
assert len( [f for f in vl.getFeatures( 'name ILIKE \'%pp%\'' )] ) == 1
21-
assert len( [f for f in vl.getFeatures( 'cnt > 0' )] ) == 4
22-
assert len( [f for f in vl.getFeatures( 'cnt < 0' )] ) == 1
23-
assert len( [f for f in vl.getFeatures( 'cnt >= 100' )] ) == 4
24-
assert len( [f for f in vl.getFeatures( 'cnt <= 100' )] ) == 2
25-
assert len( [f for f in vl.getFeatures( 'pk IN (1, 2, 4, 8)' )] ) == 3
19+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression( 'name IS NOT NULL' ) )] ) == 4
20+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('name LIKE \'Apple\'' ) )] ) == 1
21+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('name ILIKE \'aPple\'' ) )] ) == 1
22+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('name ILIKE \'%pp%\'' ) )] ) == 1
23+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('cnt > 0' ) ) ] ) == 4
24+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('cnt < 0' ) ) ] ) == 1
25+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('cnt >= 100' ) ) ] ) == 4
26+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('cnt <= 100' ) ) ] ) == 2
27+
assert len( [f for f in vl.getFeatures( QgsFeatureRequest().setFilterExpression('pk IN (1, 2, 4, 8)' ) )] ) == 3
2628

29+
def runGetFilterRectTests( vl ):
30+
extent = QgsRectangle(-70, 67, -60, 80)
31+
features = [ f.id() for f in vl.getFeatures( QgsFeatureRequest().setFilterRect( extent ) ) ]
32+
print (features)
33+
assert set( features ) == set( [2L, 4L] )

tests/src/python/test_provider_postgres.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
TestCase,
2323
unittest
2424
)
25-
from providertestutils import runGetFeatureTests
25+
from providertestutils import * # testGetFeaturesUncompiled
2626

2727
QGISAPP, CANVAS, IFACE, PARENT = getQgisTestApp()
2828
TEST_DATA_DIR = unitTestDataPath()
@@ -33,7 +33,7 @@ def setUpClass(cls):
3333
"""Run before all tests"""
3434

3535
# Create test database
36-
cls.vl = QgsVectorLayer( u'service=\'qgis_test\' key=\'pk\' table="qgis_test"."someData" sql=', 'test', 'postgres' )
36+
cls.vl = QgsVectorLayer( u'dbname=\'qgis_test\' host=localhost port=5432 user=\'postgres\' password=\'postgres\' sslmode=disable key=\'pk\' srid=4326 type=POINT table="qgis_test"."someData" (geom) sql=', 'test', 'postgres' )
3737

3838

3939
@classmethod
@@ -50,5 +50,8 @@ def testGetFeaturesCompiled(self):
5050
QSettings().setValue( "/qgis/postgres/compileExpressions", True )
5151
runGetFeatureTests( self.vl )
5252

53+
def testGetFeaturesFilterRectTests(self):
54+
runGetFilterRectTests( self.vl )
55+
5356
if __name__ == '__main__':
5457
unittest.main()

0 commit comments

Comments
 (0)