@@ -161,7 +161,21 @@ def getSubsetString(self):
161
161
"""Individual providers may need to override this depending on their subset string formats"""
162
162
return '"cnt" > 100 and "cnt" < 410'
163
163
164
- def testOrderBy (self ):
164
+ def testOrderByUncompiled (self ):
165
+ try :
166
+ self .disableCompiler ()
167
+ except AttributeError :
168
+ pass
169
+ self .runOrderByTests ()
170
+
171
+ def testOrderByCompiled (self ):
172
+ try :
173
+ self .enableCompiler ()
174
+ self .runOrderByTests ()
175
+ except AttributeError :
176
+ print 'Provider does not support compiling'
177
+
178
+ def runOrderByTests (self ):
165
179
request = QgsFeatureRequest ().addOrderBy ('cnt' )
166
180
values = [f ['cnt' ] for f in self .provider .getFeatures (request )]
167
181
self .assertEquals (values , [- 200 , 100 , 200 , 300 , 400 ])
@@ -201,6 +215,11 @@ def testOrderBy(self):
201
215
values = [f ['pk' ] for f in self .provider .getFeatures (request )]
202
216
self .assertEquals (values , [5 , 4 , 3 , 2 , 1 ])
203
217
218
+ # Order reversing expression
219
+ request = QgsFeatureRequest ().addOrderBy ('pk*-1' , False )
220
+ values = [f ['pk' ] for f in self .provider .getFeatures (request )]
221
+ self .assertEquals (values , [1 , 2 , 3 , 4 , 5 ])
222
+
204
223
# Type dependent expression
205
224
request = QgsFeatureRequest ().addOrderBy ('num_char*2' , False )
206
225
values = [f ['pk' ] for f in self .provider .getFeatures (request )]
0 commit comments