@@ -265,3 +265,79 @@ def test_dataset_update_resources(
265265 "url_type" : "upload" ,
266266 },
267267 ]
268+
269+ def test_dataset_update_resources_position (
270+ self , fixture_path , configuration , test_data , test_xlsx
271+ ):
272+ dataset = Dataset ({"name" : "test" })
273+ resource = Resource (
274+ {
275+ "name" : "test1" ,
276+ "format" : "csv" ,
277+ }
278+ )
279+ resource .set_file_to_upload (test_data )
280+ dataset .add_update_resource (resource )
281+ resource2 = Resource (
282+ {
283+ "name" : "test2" ,
284+ "description" : "test2" ,
285+ "format" : "xlsx" ,
286+ }
287+ )
288+ resource2 .set_file_to_upload (test_xlsx )
289+ dataset .add_update_resource (resource2 )
290+
291+ dataset ._old_data = dataset .data
292+ dataset ._old_data ["resources" ] = dataset ._copy_hdxobjects (
293+ dataset ._resources ,
294+ Resource ,
295+ ("_file_to_upload" , "_data_updated" , "_url_backup" ),
296+ )
297+
298+ dataset ._resources = []
299+ resource = Resource (
300+ {
301+ "name" : "test1" ,
302+ "url" : "https://data.humdata.org/dataset/resource/file1.csv" ,
303+ "format" : "csv" ,
304+ "resource_type" : "file.upload" ,
305+ "url_type" : "upload" ,
306+ }
307+ )
308+ dataset .add_update_resource (resource )
309+ (
310+ resources_to_update ,
311+ resources_to_delete ,
312+ filestore_resources ,
313+ new_resource_order ,
314+ statuses ,
315+ ) = dataset ._dataset_update_resources (True , False , True , True )
316+ assert resources_to_update == [
317+ {
318+ "format" : "csv" ,
319+ "hash" : "3790da698479326339fa99a074cbc1f7" ,
320+ "name" : "test1" ,
321+ "resource_type" : "file.upload" ,
322+ "size" : 1548 ,
323+ "url" : "updated_by_file_upload_step" ,
324+ "url_type" : "upload" ,
325+ },
326+ {
327+ "description" : "test2" ,
328+ "format" : "xlsx" ,
329+ "hash" : "6b8acf7e28d62685a1e829e7fa220d17" ,
330+ "name" : "test2" ,
331+ "resource_type" : "file.upload" ,
332+ "size" : 23724 ,
333+ "url" : "updated_by_file_upload_step" ,
334+ "url_type" : "upload" ,
335+ },
336+ ]
337+ assert resources_to_delete == []
338+ assert filestore_resources == {
339+ 0 : "tests/fixtures/test_data.csv" ,
340+ 1 : "tests/fixtures/size_hash/ACLED-All-Africa-File_20170101-to-20170708.xlsx" ,
341+ }
342+ assert new_resource_order == [("test1" , "csv" ), ("test2" , "xlsx" )]
343+ assert statuses == {"test1" : 2 , "test2" : 2 }
0 commit comments