@@ -99,3 +99,27 @@ def test_load_and_edit_with_basic_auth(self):
99
99
f = next (layer .getFeatures ("field_str_0='Super Green'" ))
100
100
self .assertIsInstance (f , QgsFeature )
101
101
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