diff --git a/tests/src/python/providertestbase.py b/tests/src/python/providertestbase.py index 2290b4a37f05..1a4bc2ec94f0 100644 --- a/tests/src/python/providertestbase.py +++ b/tests/src/python/providertestbase.py @@ -249,6 +249,10 @@ def providerCompatibleOfSubsetStringWithStableFID(self): The WFS provider might not always be able to have that guarantee. """ return True + def referenceExtent(self): + """ Extent of the reference dataset """ + return QgsRectangle(-71.123, 66.33, -65.32, 78.3) + def getSubsetString(self): """Individual providers may need to override this depending on their subset string formats""" return '"cnt" > 100 and "cnt" < 410' @@ -257,6 +261,10 @@ def getSubsetString2(self): """Individual providers may need to override this depending on their subset string formats""" return '"cnt" > 100 and "cnt" < 400' + def referenceSubsetString3Extent(self): + """ Extent of the data selected by subset string 3 """ + return QgsRectangle(-68.2, 70.8, -68.2, 70.8) + def getSubsetString3(self): """Individual providers may need to override this depending on their subset string formats""" return '"name"=\'Apple\'' @@ -422,13 +430,12 @@ def testMaxValue(self): self.assertEqual(max_value, 300) def testExtent(self): - reference = QgsGeometry.fromRect( - QgsRectangle(-71.123, 66.33, -65.32, 78.3)) + reference_extent = self.referenceExtent() provider_extent = self.source.extent() - self.assertAlmostEqual(provider_extent.xMinimum(), -71.123, 3) - self.assertAlmostEqual(provider_extent.xMaximum(), -65.32, 3) - self.assertAlmostEqual(provider_extent.yMinimum(), 66.33, 3) - self.assertAlmostEqual(provider_extent.yMaximum(), 78.3, 3) + self.assertAlmostEqual(provider_extent.xMinimum(), reference_extent.xMinimum()) + self.assertAlmostEqual(provider_extent.xMaximum(), reference_extent.xMaximum()) + self.assertAlmostEqual(provider_extent.yMinimum(), reference_extent.yMinimum()) + self.assertAlmostEqual(provider_extent.yMaximum(), reference_extent.yMaximum()) def testExtentSubsetString(self): if self.source.supportsSubsetString(): @@ -437,12 +444,13 @@ def testExtentSubsetString(self): self.source.setSubsetString(subset) count = self.source.featureCount() provider_extent = self.source.extent() + subset_extent = self.referenceSubsetString3Extent() self.source.setSubsetString(None) self.assertEqual(count, 1) - self.assertAlmostEqual(provider_extent.xMinimum(), -68.2, 3) - self.assertAlmostEqual(provider_extent.xMaximum(), -68.2, 3) - self.assertAlmostEqual(provider_extent.yMinimum(), 70.8, 3) - self.assertAlmostEqual(provider_extent.yMaximum(), 70.8, 3) + self.assertAlmostEqual(provider_extent.xMinimum(), subset_extent.xMinimum(), 3) + self.assertAlmostEqual(provider_extent.xMaximum(), subset_extent.xMaximum(), 3) + self.assertAlmostEqual(provider_extent.yMinimum(), subset_extent.yMinimum(), 3) + self.assertAlmostEqual(provider_extent.yMaximum(), subset_extent.yMaximum(), 3) # with no points subset = self.getSubsetStringNoMatching()