@@ -303,22 +303,31 @@ def test_make_features_compatible_attributes(self):
303303
304304 def test_make_features_compatible_geometry (self ):
305305 """Test corner cases for geometries"""
306+
307+ # Make a feature with no geometry
306308 layer = self ._make_layer ('Point' )
307309 self .assertTrue (layer .isValid ())
308310 self .assertTrue (layer .startEditing ())
309311 f1 = QgsFeature (layer .fields ())
310312 f1 .setAttributes ([1 ])
313+
314+ # Check that it is accepted on a Point layer
311315 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 (), '' )
313318
319+ # Make a geometry-less layer
314320 nogeom_layer = QgsMemoryProviderUtils .createMemoryLayer (
315321 'nogeom_layer' , layer .fields (), QgsWkbTypes .NoGeometry , QgsCoordinateReferenceSystem (4326 ))
322+ # Check that a geometry-less feature is accepted
316323 new_features = make_features_compatible ([f1 ], nogeom_layer )
317324 self .assertEqual (len (new_features ), 1 )
318325 self .assertEqual (new_features [0 ].geometry ().asWkt (), '' )
319326
327+ # Make a geometry-less layer
320328 nogeom_layer = QgsMemoryProviderUtils .createMemoryLayer (
321329 'nogeom_layer' , layer .fields (), QgsWkbTypes .NoGeometry , QgsCoordinateReferenceSystem (4326 ))
330+ # Check that a Point feature is accepted but geometry was dropped
322331 f1 .setGeometry (QgsGeometry .fromWkt ('Point(9 45)' ))
323332 new_features = make_features_compatible ([f1 ], nogeom_layer )
324333 self .assertEqual (len (new_features ), 1 )
0 commit comments