diff --git a/tests/integration/test_integration_qgis.py b/tests/integration/test_integration_qgis.py index 52741d45..b339a6a6 100644 --- a/tests/integration/test_integration_qgis.py +++ b/tests/integration/test_integration_qgis.py @@ -99,3 +99,27 @@ def test_load_and_edit_with_basic_auth(self): f = next(layer.getFeatures("field_str_0='Super Green'")) self.assertIsInstance(f, QgsFeature) self.assertEqual(geom.asWkt(), f.geometry().asWkt()) + + def test_non_null_default(self): + layer = "tests.non_null_field_with_default" + uri = QgsDataSourceUri() + uri.setParam("service", "wfs") + uri.setParam("typename", layer) + uri.setParam("url", ROOT_URL) + uri.setPassword(self.password) + uri.setUsername(self.user) + + layer = QgsVectorLayer(uri.uri(), layer, "OAPIF") + self.assertTrue(layer.isValid()) + layer = self.project.addMapLayer(layer) + self.assertIsNotNone(layer) + + self.assertTrue(bool(layer.dataProvider().capabilities() & QgsVectorDataProvider.Capability.AddFeatures)) + + f = QgsFeature(layer.fields()) + self.assertIsNone(f["field_non_null_with_default"]) + with edit(layer): + layer.addFeature(f) + f = next(layer.getFeatures()) + self.assertIsInstance(f, QgsFeature) + self.assertEqual(f["field_non_null_with_default"], 8)