Skip to content

Commit

Permalink
Reduce use of magic numbers in provider tests
Browse files Browse the repository at this point in the history
Expose these methods:
  - referenceExtent()
  - referenceSubsetString3Extent()
  • Loading branch information
strk authored and nyalldawson committed Oct 23, 2023
1 parent 515f625 commit fc81e81
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions tests/src/python/providertestbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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\''
Expand Down Expand Up @@ -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():
Expand All @@ -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()
Expand Down

0 comments on commit fc81e81

Please sign in to comment.