Skip to content

Commit ac55ce0

Browse files
elpasonyalldawson
authored andcommitted
In place test POC completed
1 parent f35e376 commit ac55ce0

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

tests/src/python/test_qgsprocessinginplace.py

+15-4
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,31 @@ def test_algs(self):
5858
parameters = {}
5959
parameters['INPUT'] = QgsProcessingFeatureSourceDefinition(self.vl.id(), True)
6060
parameters['OUTPUT'] = 'memory:'
61+
parameters['DELTA_X'] = 1.1
62+
parameters['DELTA_Y'] = 1.1
6163

6264
context = QgsProcessingContext()
6365
feedback = QgsProcessingFeedback()
6466
self.assertTrue(alg.prepare(parameters, context, feedback))
6567

68+
self.assertTrue(self.vl.startEditing())
69+
70+
field_idxs = range(len(self.vl.fields()))
71+
72+
new_features = {}
6673
for f in self.vl.getFeatures():
6774
new_f = alg.processFeature(f, context, feedback)[0]
75+
new_features[f.id()] = new_f
6876
self.assertEqual(new_f.id(), f.id())
77+
# This alg does change the geometry!
78+
self.vl.changeGeometry(f.id(), new_f.geometry())
79+
# This alg does not change attrs but some other might do
80+
self.vl.changeAttributeValues(f.id(), dict(zip(field_idxs, new_f.attributes())), dict(zip(field_idxs, f.attributes())))
6981

70-
from IPython import embed; embed()
71-
72-
73-
82+
self.assertTrue(self.vl.commitChanges())
7483

84+
for f in self.vl.getFeatures():
85+
self.assertEqual(new_features[f.id()].geometry().asWkt(), f.geometry().asWkt())
7586

7687

7788
if __name__ == '__main__':

0 commit comments

Comments
 (0)