@@ -99,3 +99,27 @@ def test_load_and_edit_with_basic_auth(self):
9999 f = next (layer .getFeatures ("field_str_0='Super Green'" ))
100100 self .assertIsInstance (f , QgsFeature )
101101 self .assertEqual (geom .asWkt (), f .geometry ().asWkt ())
102+
103+ def test_non_null_default (self ):
104+ layer = "tests.non_null_field_with_default"
105+ uri = QgsDataSourceUri ()
106+ uri .setParam ("service" , "wfs" )
107+ uri .setParam ("typename" , layer )
108+ uri .setParam ("url" , ROOT_URL )
109+ uri .setPassword (self .password )
110+ uri .setUsername (self .user )
111+
112+ layer = QgsVectorLayer (uri .uri (), layer , "OAPIF" )
113+ self .assertTrue (layer .isValid ())
114+ layer = self .project .addMapLayer (layer )
115+ self .assertIsNotNone (layer )
116+
117+ self .assertTrue (bool (layer .dataProvider ().capabilities () & QgsVectorDataProvider .Capability .AddFeatures ))
118+
119+ f = QgsFeature (layer .fields ())
120+ self .assertIsNone (f ["field_non_null_with_default" ])
121+ with edit (layer ):
122+ layer .addFeature (f )
123+ f = next (layer .getFeatures ())
124+ self .assertIsInstance (f , QgsFeature )
125+ self .assertEqual (f ["field_non_null_with_default" ], 8 )
0 commit comments