Skip to content

Commit 258527c

Browse files
committed
Don't try to run provider tests which require subsetStrings on providers which don't support them
1 parent c6f7a07 commit 258527c

File tree

1 file changed

+69
-63
lines changed

1 file changed

+69
-63
lines changed

tests/src/python/providertestbase.py

Lines changed: 69 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -280,21 +280,23 @@ def testMinValue(self):
280280
self.assertEqual(self.source.minimumValue(1), -200)
281281
self.assertEqual(self.source.minimumValue(2), 'Apple')
282282

283-
subset = self.getSubsetString()
284-
self.source.setSubsetString(subset)
285-
min_value = self.source.minimumValue(1)
286-
self.source.setSubsetString(None)
287-
self.assertEqual(min_value, 200)
283+
if self.source.supportsSubsetString():
284+
subset = self.getSubsetString()
285+
self.source.setSubsetString(subset)
286+
min_value = self.source.minimumValue(1)
287+
self.source.setSubsetString(None)
288+
self.assertEqual(min_value, 200)
288289

289290
def testMaxValue(self):
290291
self.assertEqual(self.source.maximumValue(1), 400)
291292
self.assertEqual(self.source.maximumValue(2), 'Pear')
292293

293-
subset = self.getSubsetString2()
294-
self.source.setSubsetString(subset)
295-
max_value = self.source.maximumValue(1)
296-
self.source.setSubsetString(None)
297-
self.assertEqual(max_value, 300)
294+
if self.source.supportsSubsetString():
295+
subset = self.getSubsetString2()
296+
self.source.setSubsetString(subset)
297+
max_value = self.source.maximumValue(1)
298+
self.source.setSubsetString(None)
299+
self.assertEqual(max_value, 300)
298300

299301
def testExtent(self):
300302
reference = QgsGeometry.fromRect(
@@ -305,36 +307,38 @@ def testExtent(self):
305307
self.assertAlmostEqual(provider_extent.yMinimum(), 66.33, 3)
306308
self.assertAlmostEqual(provider_extent.yMaximum(), 78.3, 3)
307309

308-
# with only one point
309-
subset = self.getSubsetString3()
310-
self.source.setSubsetString(subset)
311-
count = self.source.featureCount()
312-
provider_extent = self.source.extent()
313-
self.source.setSubsetString(None)
314-
self.assertEqual(count, 1)
315-
self.assertAlmostEqual(provider_extent.xMinimum(), -68.2, 3)
316-
self.assertAlmostEqual(provider_extent.xMaximum(), -68.2, 3)
317-
self.assertAlmostEqual(provider_extent.yMinimum(), 70.8, 3)
318-
self.assertAlmostEqual(provider_extent.yMaximum(), 70.8, 3)
319-
320-
# with no points
321-
subset = self.getSubsetStringNoMatching()
322-
self.source.setSubsetString(subset)
323-
count = self.source.featureCount()
324-
provider_extent = self.source.extent()
325-
self.source.setSubsetString(None)
326-
self.assertEqual(count, 0)
327-
self.assertTrue(provider_extent.isNull())
310+
if self.source.supportsSubsetString():
311+
# with only one point
312+
subset = self.getSubsetString3()
313+
self.source.setSubsetString(subset)
314+
count = self.source.featureCount()
315+
provider_extent = self.source.extent()
316+
self.source.setSubsetString(None)
317+
self.assertEqual(count, 1)
318+
self.assertAlmostEqual(provider_extent.xMinimum(), -68.2, 3)
319+
self.assertAlmostEqual(provider_extent.xMaximum(), -68.2, 3)
320+
self.assertAlmostEqual(provider_extent.yMinimum(), 70.8, 3)
321+
self.assertAlmostEqual(provider_extent.yMaximum(), 70.8, 3)
322+
323+
# with no points
324+
subset = self.getSubsetStringNoMatching()
325+
self.source.setSubsetString(subset)
326+
count = self.source.featureCount()
327+
provider_extent = self.source.extent()
328+
self.source.setSubsetString(None)
329+
self.assertEqual(count, 0)
330+
self.assertTrue(provider_extent.isNull())
328331

329332
def testUnique(self):
330333
self.assertEqual(set(self.source.uniqueValues(1)), set([-200, 100, 200, 300, 400]))
331334
assert set(['Apple', 'Honey', 'Orange', 'Pear', NULL]) == set(self.source.uniqueValues(2)), 'Got {}'.format(set(self.source.uniqueValues(2)))
332335

333-
subset = self.getSubsetString2()
334-
self.source.setSubsetString(subset)
335-
values = self.source.uniqueValues(1)
336-
self.source.setSubsetString(None)
337-
self.assertEqual(set(values), set([200, 300]))
336+
if self.source.supportsSubsetString():
337+
subset = self.getSubsetString2()
338+
self.source.setSubsetString(subset)
339+
values = self.source.uniqueValues(1)
340+
self.source.setSubsetString(None)
341+
self.assertEqual(set(values), set([200, 300]))
338342

339343
def testUniqueStringsMatching(self):
340344
self.assertEqual(set(self.source.uniqueStringsMatching(2, 'a')), set(['Pear', 'Orange', 'Apple']))
@@ -349,38 +353,40 @@ def testUniqueStringsMatching(self):
349353

350354
assert set([u'Apple', u'Honey', u'Orange', u'Pear', NULL]) == set(self.source.uniqueValues(2)), 'Got {}'.format(set(self.source.uniqueValues(2)))
351355

352-
subset = self.getSubsetString2()
353-
self.source.setSubsetString(subset)
354-
values = self.source.uniqueStringsMatching(2, 'a')
355-
self.source.setSubsetString(None)
356-
self.assertEqual(set(values), set(['Pear', 'Apple']))
356+
if self.source.supportsSubsetString():
357+
subset = self.getSubsetString2()
358+
self.source.setSubsetString(subset)
359+
values = self.source.uniqueStringsMatching(2, 'a')
360+
self.source.setSubsetString(None)
361+
self.assertEqual(set(values), set(['Pear', 'Apple']))
357362

358363
def testFeatureCount(self):
359364
self.assertEqual(self.source.featureCount(), 5)
360365

361-
#Add a subset string and test feature count
362-
subset = self.getSubsetString()
363-
self.source.setSubsetString(subset)
364-
count = self.source.featureCount()
365-
self.source.setSubsetString(None)
366-
self.assertEqual(count, 3)
367-
self.assertEqual(self.source.featureCount(), 5)
368-
369-
# one matching records
370-
subset = self.getSubsetString3()
371-
self.source.setSubsetString(subset)
372-
count = self.source.featureCount()
373-
self.source.setSubsetString(None)
374-
self.assertEqual(count, 1)
375-
self.assertEqual(self.source.featureCount(), 5)
376-
377-
# no matching records
378-
subset = self.getSubsetStringNoMatching()
379-
self.source.setSubsetString(subset)
380-
count = self.source.featureCount()
381-
self.source.setSubsetString(None)
382-
self.assertEqual(count, 0)
383-
self.assertEqual(self.source.featureCount(), 5)
366+
if self.source.supportsSubsetString():
367+
#Add a subset string and test feature count
368+
subset = self.getSubsetString()
369+
self.source.setSubsetString(subset)
370+
count = self.source.featureCount()
371+
self.source.setSubsetString(None)
372+
self.assertEqual(count, 3)
373+
self.assertEqual(self.source.featureCount(), 5)
374+
375+
# one matching records
376+
subset = self.getSubsetString3()
377+
self.source.setSubsetString(subset)
378+
count = self.source.featureCount()
379+
self.source.setSubsetString(None)
380+
self.assertEqual(count, 1)
381+
self.assertEqual(self.source.featureCount(), 5)
382+
383+
# no matching records
384+
subset = self.getSubsetStringNoMatching()
385+
self.source.setSubsetString(subset)
386+
count = self.source.featureCount()
387+
self.source.setSubsetString(None)
388+
self.assertEqual(count, 0)
389+
self.assertEqual(self.source.featureCount(), 5)
384390

385391
def testGetFeaturesNoGeometry(self):
386392
""" Test that no geometry is present when fetching features without geometry"""

0 commit comments

Comments
 (0)