@@ -58,20 +58,31 @@ def test_algs(self):
58
58
parameters = {}
59
59
parameters ['INPUT' ] = QgsProcessingFeatureSourceDefinition (self .vl .id (), True )
60
60
parameters ['OUTPUT' ] = 'memory:'
61
+ parameters ['DELTA_X' ] = 1.1
62
+ parameters ['DELTA_Y' ] = 1.1
61
63
62
64
context = QgsProcessingContext ()
63
65
feedback = QgsProcessingFeedback ()
64
66
self .assertTrue (alg .prepare (parameters , context , feedback ))
65
67
68
+ self .assertTrue (self .vl .startEditing ())
69
+
70
+ field_idxs = range (len (self .vl .fields ()))
71
+
72
+ new_features = {}
66
73
for f in self .vl .getFeatures ():
67
74
new_f = alg .processFeature (f , context , feedback )[0 ]
75
+ new_features [f .id ()] = new_f
68
76
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 ())))
69
81
70
- from IPython import embed ; embed ()
71
-
72
-
73
-
82
+ self .assertTrue (self .vl .commitChanges ())
74
83
84
+ for f in self .vl .getFeatures ():
85
+ self .assertEqual (new_features [f .id ()].geometry ().asWkt (), f .geometry ().asWkt ())
75
86
76
87
77
88
if __name__ == '__main__' :
0 commit comments