Skip to content

Commit 3067648

Browse files
volayaalexbruy
authored andcommitted
[processing] added test for invalid geometry checking
1 parent 7b68c77 commit 3067648

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

python/plugins/processing/tests/TestData.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,7 @@ def table():
3636

3737
def points():
3838
return os.path.join(testDataPath, 'points.gml')
39+
40+
def invalid_geometries():
41+
return os.path.join(testDataPath, 'invalidgeometries.gml')
42+

python/plugins/processing/tests/ToolsTest.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from qgis.testing import start_app, unittest
3434

3535
from processing.core.ProcessingConfig import ProcessingConfig
36-
from processing.tests.TestData import testDataPath, points
36+
from processing.tests.TestData import testDataPath, points, invalid_geometries
3737
from processing.tools import vector
3838

3939
testDataPath = os.path.join(os.path.dirname(__file__), 'testdata')
@@ -98,7 +98,21 @@ def testFeatures(self):
9898
features = vector.features(test_layer, QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry))
9999
self.assertEqual(set([f.id() for f in features]), set([2, 4, 6]))
100100

101+
#test exception is raised when filtering invalid geoms
102+
test_layer_invalid_geoms = QgsVectorLayer(invalid_geometries(), 'test', 'ogr')
103+
104+
previous_value_invalid_geoms = ProcessingConfig.getSetting(ProcessingConfig.FILTER_INVALID_GEOMETRIES)
105+
ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, 2)
106+
try:
107+
features = vector.features(test_layer_invalid_geoms)
108+
features = [f for f in features]
109+
self.fail()
110+
except GeoAlgorithmExecutionException:
111+
pass
112+
113+
ProcessingConfig.setSettingValue(ProcessingConfig.FILTER_INVALID_GEOMETRIES, previous_value_invalid_geoms)
101114
ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value)
115+
102116

103117
def testValues(self):
104118
ProcessingConfig.initialize()

0 commit comments

Comments
 (0)