@@ -74,6 +74,13 @@ def setUp(self):
7474 )
7575 self .project1 .save ()
7676
77+ self .project3 = Project .objects .create (
78+ name = "project3" ,
79+ is_public = False ,
80+ owner = self .org1 ,
81+ )
82+ self .project3 .save ()
83+
7784 OrganizationMember .objects .create (
7885 organization = self .org1 ,
7986 member = self .user2 ,
@@ -170,6 +177,57 @@ def upload_project_files(self, project) -> Project:
170177
171178 raise Exception ("Projectfile never set on project" )
172179
180+ def upload_project3_files (self , project ) -> Project :
181+ for project_file in [
182+ "testdata.gpkg" ,
183+ "project3.qgs" ,
184+ ]:
185+ file_path = testdata_path (f"delta/{ project_file } " )
186+ response = self .client .post (
187+ f"/api/v1/files/{ project .id } /{ project_file } /" ,
188+ {"file" : open (file_path , "rb" )},
189+ format = "multipart" ,
190+ )
191+ self .assertTrue (
192+ status .is_success (response .status_code ),
193+ f"Failed to upload file '{ project_file } '" ,
194+ )
195+
196+ # wait until the project file check are ready
197+ for i in range (30 ):
198+ updated_project = Project .objects .get (id = project .id )
199+ if updated_project .has_the_qgis_file :
200+ return updated_project
201+
202+ time .sleep (1 )
203+
204+ raise Exception ("Projectfile never set on project" )
205+
206+ def test_push_apply_delta_file_add_feature_default_value (self ):
207+ self .client .credentials (HTTP_AUTHORIZATION = "Token " + self .token1 .key )
208+
209+ project = self .upload_project3_files (self .project3 )
210+
211+ self .upload_and_check_deltas (
212+ project = project ,
213+ delta_filename = "singlelayer_singledelta_add_feature_default_value.json" ,
214+ token = self .token1 .key ,
215+ final_values = [
216+ [
217+ "c8c421cd-e39c-40a0-97d8-a319c245ba14" ,
218+ "STATUS_APPLIED" ,
219+ self .user1 .username ,
220+ ]
221+ ],
222+ )
223+
224+ gdf = self .read_gpkg_layer (project , "testdata.gpkg" , "polygons" )
225+
226+ f = gdf .iloc [2 ]
227+ self .assertEqual (1 , f ["int" ])
228+ self .assertEqual (1.0 , f ["dbl" ])
229+ self .assertEqual ("correct!" , f ["str" ])
230+
173231 def test_push_apply_delta_file (self ):
174232 self .client .credentials (HTTP_AUTHORIZATION = "Token " + self .token1 .key )
175233 project = self .upload_project_files (self .project1 )
@@ -1273,7 +1331,7 @@ def check_deltas_by_file_id(
12731331 self .assertEqual (payload [idx ]["created_by" ], created_by )
12741332
12751333 job = Job .objects .filter (
1276- project = self . project1 ,
1334+ project = project ,
12771335 type = Job .Type .DELTA_APPLY ,
12781336 ).latest ("updated_at" )
12791337
0 commit comments