Skip to content

Commit 95316ae

Browse files
committed
added tests and fixed up typos
1 parent 9eed035 commit 95316ae

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

api/download.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ def summary(self):
339339

340340
# for each type of container below it will have a slightly modified match query
341341
cont_query = {
342-
'projects': {'_id': {'project': req['_id']}},
342+
'projects': {'_id': req['_id']},
343343
'sessions': {'project': req['_id']},
344344
'acquisitions': {'session': {'$in': session_ids}},
345345
'analyses': {'parent.id': {'$in': parent_ids}}
@@ -382,8 +382,7 @@ def summary(self):
382382
try:
383383
result = config.db.command('aggregate', cont_name, pipeline=pipeline)
384384
except Exception as e: # pylint: disable=broad-except
385-
result = e
386-
return result
385+
return e
387386

388387
if result.get("ok"):
389388
for doc in result.get("result"):

test/integration_tests/python/test_download.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)