@@ -51,7 +51,7 @@ def createEmptyPolygonLayer():
51
51
return layer
52
52
53
53
54
- class TestQgsVectorLayerEditBuffer (unittest .TestCase ):
54
+ class TestQgsVectorLayerEditUtils (unittest .TestCase ):
55
55
56
56
def testAddRing (self ):
57
57
# test adding ring to a vector layer
@@ -111,7 +111,7 @@ def testAddRingOverlappedFeatures(self):
111
111
assert layer .getFeature (1 ).geometry ().asWkt () == "Polygon ((0 0, 5 0, 5 5, 0 5, 0 0),(3 3, 3 4, 4 4, 4 3, 3 3))"
112
112
assert layer .getFeature (2 ).geometry ().asWkt () == "Polygon ((2 2, 6 2, 6 6, 2 6, 2 2))"
113
113
114
- def testAddMultiRingNotEditable (self ):
114
+ def testAddRingV2NotEditable (self ):
115
115
# test adding ring on multi features
116
116
# layer not editable
117
117
layer = createEmptyPolygonLayer ()
@@ -127,13 +127,15 @@ def testAddMultiRingNotEditable(self):
127
127
layer .commitChanges ()
128
128
129
129
vle = QgsVectorLayerEditUtils (layer )
130
- assert Qgis .GeometryOperationResult .LayerNotEditable == vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 ), QgsPoint (3 , 3 )]))
130
+ result = vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 ), QgsPoint (3 , 3 )]))
131
+ assert Qgis .GeometryOperationResult .LayerNotEditable == result [0 ]
132
+ assert [] == result [1 ]
131
133
layer .commitChanges ()
132
134
133
135
assert layer .getFeature (1 ).geometry ().asWkt () == "Polygon ((0 0, 5 0, 5 5, 0 5, 0 0))"
134
136
assert layer .getFeature (2 ).geometry ().asWkt () == "Polygon ((2 2, 6 2, 6 6, 2 6, 2 2))"
135
137
136
- def testAddMultiRingNotClosedRing (self ):
138
+ def testAddRingV2NotClosedRing (self ):
137
139
# test adding ring on multi features
138
140
# Not closed ring
139
141
layer = createEmptyPolygonLayer ()
@@ -148,13 +150,15 @@ def testAddMultiRingNotClosedRing(self):
148
150
assert layer .featureCount () == 2
149
151
150
152
vle = QgsVectorLayerEditUtils (layer )
151
- assert Qgis .GeometryOperationResult .AddRingNotClosed == vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 )]))
153
+ result = vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 )]))
154
+ assert Qgis .GeometryOperationResult .AddRingNotClosed == result [0 ]
155
+ assert [] == result [1 ]
152
156
layer .commitChanges ()
153
157
154
158
assert layer .getFeature (1 ).geometry ().asWkt () == "Polygon ((0 0, 5 0, 5 5, 0 5, 0 0))"
155
159
assert layer .getFeature (2 ).geometry ().asWkt () == "Polygon ((2 2, 6 2, 6 6, 2 6, 2 2))"
156
160
157
- def testAddMultiRingOutside (self ):
161
+ def testAddRingV2Outside (self ):
158
162
# test adding ring on multi features
159
163
# Not In Existing Feature
160
164
layer = createEmptyPolygonLayer ()
@@ -169,13 +173,15 @@ def testAddMultiRingOutside(self):
169
173
assert layer .featureCount () == 2
170
174
171
175
vle = QgsVectorLayerEditUtils (layer )
172
- assert Qgis .GeometryOperationResult .AddRingNotInExistingFeature == vle .addRingV2 (QgsLineString ([QgsPoint (8 , 8 ), QgsPoint (8 , 9 ), QgsPoint (9 , 9 ), QgsPoint (9 , 8 ), QgsPoint (8 , 8 )]))
176
+ result = vle .addRingV2 (QgsLineString ([QgsPoint (8 , 8 ), QgsPoint (8 , 9 ), QgsPoint (9 , 9 ), QgsPoint (9 , 8 ), QgsPoint (8 , 8 )]))
177
+ assert Qgis .GeometryOperationResult .AddRingNotInExistingFeature == result [0 ]
178
+ assert [] == result [1 ]
173
179
layer .commitChanges ()
174
180
175
181
assert layer .getFeature (1 ).geometry ().asWkt () == "Polygon ((0 0, 5 0, 5 5, 0 5, 0 0))"
176
182
assert layer .getFeature (2 ).geometry ().asWkt () == "Polygon ((2 2, 6 2, 6 6, 2 6, 2 2))"
177
183
178
- def testAddMultiRing (self ):
184
+ def testAddRingV2 (self ):
179
185
# test adding ring on multi features
180
186
layer = createEmptyPolygonLayer ()
181
187
self .assertTrue (layer .startEditing ())
@@ -189,12 +195,37 @@ def testAddMultiRing(self):
189
195
assert layer .featureCount () == 2
190
196
191
197
vle = QgsVectorLayerEditUtils (layer )
192
- assert Qgis .GeometryOperationResult .Success == vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 ), QgsPoint (3 , 3 )]))
198
+ result = vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 ), QgsPoint (3 , 3 )]))
199
+ assert Qgis .GeometryOperationResult .Success == result [0 ]
200
+ assert [2 , 1 ] == result [1 ]
193
201
layer .commitChanges ()
194
202
195
203
assert layer .getFeature (1 ).geometry ().asWkt () == "Polygon ((0 0, 5 0, 5 5, 0 5, 0 0),(3 3, 3 4, 4 4, 4 3, 3 3))"
196
204
assert layer .getFeature (2 ).geometry ().asWkt () == "Polygon ((2 2, 6 2, 6 6, 2 6, 2 2),(3 3, 3 4, 4 4, 4 3, 3 3))"
197
205
206
+ def testAddRingV2SelectedFeatures (self ):
207
+ # test adding ring on multi features
208
+ # test selected features
209
+ layer = createEmptyPolygonLayer ()
210
+ self .assertTrue (layer .startEditing ())
211
+
212
+ pr = layer .dataProvider ()
213
+ f1 = QgsFeature (layer .fields (), 1 )
214
+ f1 .setGeometry (QgsGeometry .fromWkt ('POLYGON((0 0, 5 0, 5 5, 0 5, 0 0))' ))
215
+ f2 = QgsFeature (layer .fields (), 1 )
216
+ f2 .setGeometry (QgsGeometry .fromWkt ('POLYGON((2 2, 6 2, 6 6, 2 6, 2 2))' ))
217
+ assert pr .addFeatures ([f1 , f2 ])
218
+ assert layer .featureCount () == 2
219
+
220
+ vle = QgsVectorLayerEditUtils (layer )
221
+ result = vle .addRingV2 (QgsLineString ([QgsPoint (3 , 3 ), QgsPoint (3 , 4 ), QgsPoint (4 , 4 ), QgsPoint (4 , 3 ), QgsPoint (3 , 3 )]), [1 ])
222
+ assert Qgis .GeometryOperationResult .Success == result [0 ]
223
+ assert [1 ] == result [1 ]
224
+ layer .commitChanges ()
225
+
226
+ assert layer .getFeature (1 ).geometry ().asWkt () == "Polygon ((0 0, 5 0, 5 5, 0 5, 0 0),(3 3, 3 4, 4 4, 4 3, 3 3))"
227
+ assert layer .getFeature (2 ).geometry ().asWkt () == "Polygon ((2 2, 6 2, 6 6, 2 6, 2 2))"
228
+
198
229
199
230
if __name__ == '__main__' :
200
231
unittest .main ()
0 commit comments