@@ -399,3 +399,38 @@ def test_filters(data_builder, file_form, as_admin):
399399 })
400400 assert r .ok
401401 assert r .json ()['file_cnt' ] == 1
402+
403+ def test_summary (data_builder , as_admin , file_form ):
404+ project = data_builder .create_project (label = 'project1' )
405+ session = data_builder .create_session (label = 'session1' )
406+ session2 = data_builder .create_session (label = 'session1' )
407+ acquisition = data_builder .create_acquisition (session = session )
408+ acquisition2 = data_builder .create_acquisition (session = session2 )
409+
410+ # upload the same file to each container created and use different tags to
411+ # facilitate download filter tests:
412+ # acquisition: [], session: ['plus'], project: ['plus', 'minus']
413+ file_name = 'test.csv'
414+ as_admin .post ('/acquisitions/' + acquisition + '/files' , files = file_form (
415+ file_name , meta = {'name' : file_name , 'type' : 'csv' }))
416+
417+ as_admin .post ('/acquisitions/' + acquisition2 + '/files' , files = file_form (
418+ file_name , meta = {'name' : file_name , 'type' : 'csv' }))
419+
420+ as_admin .post ('/sessions/' + session + '/files' , files = file_form (
421+ file_name , meta = {'name' : file_name , 'type' : 'csv' , 'tags' : ['plus' ]}))
422+
423+ as_admin .post ('/projects/' + project + '/files' , files = file_form (
424+ file_name , meta = {'name' : file_name , 'type' : 'csv' , 'tags' : ['plus' , 'minus' ]}))
425+
426+ missing_object_id = '000000000000000000000000'
427+
428+ r = as_admin .post ('/download/summary' , json = {"level" :"projects" , "_id" :project })
429+ assert r .ok
430+ assert len (r .json ()) == 1
431+ assert r .json ().get ("csv" , {}).get ("count" ,0 ) == 4
432+
433+ r = as_admin .post ('/download/summary' , json = {"level" :"sessions" , "_id" :session })
434+ assert r .ok
435+ assert len (r .json ()) == 1
436+ assert r .json ().get ("csv" , {}).get ("count" ,0 ) == 2
0 commit comments