@@ -303,22 +303,31 @@ def test_make_features_compatible_attributes(self):
303
303
304
304
def test_make_features_compatible_geometry (self ):
305
305
"""Test corner cases for geometries"""
306
+
307
+ # Make a feature with no geometry
306
308
layer = self ._make_layer ('Point' )
307
309
self .assertTrue (layer .isValid ())
308
310
self .assertTrue (layer .startEditing ())
309
311
f1 = QgsFeature (layer .fields ())
310
312
f1 .setAttributes ([1 ])
313
+
314
+ # Check that it is accepted on a Point layer
311
315
new_features = make_features_compatible ([f1 ], layer )
312
- self .assertEqual (len (new_features ), 0 )
316
+ self .assertEqual (len (new_features ), 1 )
317
+ self .assertEqual (new_features [0 ].geometry ().asWkt (), '' )
313
318
319
+ # Make a geometry-less layer
314
320
nogeom_layer = QgsMemoryProviderUtils .createMemoryLayer (
315
321
'nogeom_layer' , layer .fields (), QgsWkbTypes .NoGeometry , QgsCoordinateReferenceSystem (4326 ))
322
+ # Check that a geometry-less feature is accepted
316
323
new_features = make_features_compatible ([f1 ], nogeom_layer )
317
324
self .assertEqual (len (new_features ), 1 )
318
325
self .assertEqual (new_features [0 ].geometry ().asWkt (), '' )
319
326
327
+ # Make a geometry-less layer
320
328
nogeom_layer = QgsMemoryProviderUtils .createMemoryLayer (
321
329
'nogeom_layer' , layer .fields (), QgsWkbTypes .NoGeometry , QgsCoordinateReferenceSystem (4326 ))
330
+ # Check that a Point feature is accepted but geometry was dropped
322
331
f1 .setGeometry (QgsGeometry .fromWkt ('Point(9 45)' ))
323
332
new_features = make_features_compatible ([f1 ], nogeom_layer )
324
333
self .assertEqual (len (new_features ), 1 )
0 commit comments