Ejemplo n.º 1
0
 def test_handle_project_label_failure(self):
     """ """
     # Define inputs
     bids_hierarchy = {
             '7t_trt_reduced': {
                 'files': ['dataset_description.json'],
                 'sub-01': {
                     'files': ['sub-01_sessions.tsv'],
                     'ses-1': {
                         'files': ['sub-01_ses-1_scans.tsv'],
                         'fmap': {'files': ['sub-01_ses-1_run-1_magnitude1.nii.gz']},
                         'anat': {'files': ['sub-01_ses-1_T1map.nii.gz']},
                         'func': {'files': ['sub-01_ses-1_task-rest_acq-fullbrain_run-1_bold.nii.gz']}},
                     'ses-2': {
                         'files': ['sub-01_ses-2_scans.tsv'],
                         'fmap': {'files': ['sub-01_ses-2_run-1_magnitude1.nii.gz']},
                         'func': {'files': ['sub-01_ses-2_task-rest_acq-fullbrain_run-1_bold.nii.gz']}}},
                 'sub-02': {
                     'files': ['sub-02_sessions.tsv'],
                     'ses-1': {
                         'files': ['sub-02_ses-1_scans.tsv'],
                         'fmap': {'files': ['sub-02_ses-1_run-1_magnitude1.nii.gz']},
                         'anat': {'files': ['sub-02_ses-1_T1map.nii.gz']},
                         'func': {'files': ['sub-02_ses-1_task-rest_acq-fullbrain_run-1_bold.nii.gz']}},
                     'ses-2': {
                         'files': ['sub-02_ses-2_scans.tsv'],
                         'fmap': {'files': ['sub-02_ses-2_run-1_magnitude1.nii.gz']},
                         'func': {'files': ['sub-02_ses-2_task-rest_acq-fullbrain_run-1_bold.nii.gz']}}}}}
     project_label_cli = 'new_project_label'
     rootdir = '/root'
     # Call function
     bids_hierarchy_returned, rootdir_returned = upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             False, None, None)
Ejemplo n.º 2
0
 def test_handle_project_label_session_not_found(self):
     """ """
     # Define inputs
     bids_hierarchy = {
             'files': ['CHANGES', 'dataset_description.json'],
             'code1': {'files': ['debug.py']},
             'code2': {'files': ['debug.py']},
             'sub-01': {
                     'ses-01': {
                         'files': [],
                         'anat': {'files': ['test.nii.gz']},
                         'dwi': {'files': ['test.nii.gz']},
                         'func': {'files': ['test.nii.gz']}
                     },
                     'ses-02': {
                         'files': [],
                         'anat': {'files': ['test.nii.gz']},
                         'dwi': {'files': ['test.nii.gz']},
                         'func': {'files': ['test.nii.gz']}
                     }
                 }
             }
     project_label_cli = 'new_project_label'
     rootdir = '/root/sub-01'
     # Call function
     with self.assertRaises(SystemExit) as err:
         bids_hierarchy_returned, rootdir_returned = upload_bids.handle_project_label(
                 copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
                 False, 'sub-01', 'ses-03')
Ejemplo n.º 3
0
 def test_handle_project_label_single_subject(self):
     """ """
     # Define inputs
     bids_hierarchy = {
             'files': ['CHANGES', 'dataset_description.json'],
             'code1': {'files': ['debug.py']},
             'code2': {'files': ['debug.py']},
             'sub-02': {
                 'files': [],
                 'anat': {'files': ['test.nii.gz']},
                 'dwi': {'files': ['test.nii.gz']},
                 'func': {'files': ['test.nii.gz']}},
             'sub-01': {
                 'files': [],
                 'anat': {'files': ['test.nii.gz']},
                 'dwi': {'files': ['test.nii.gz']},
                 'func': {'files': ['test.nii.gz']}}
             }
     project_label_cli = 'new_project_label'
     rootdir = '/root/sub-01'
     # Call function
     bids_hierarchy_returned, rootdir_returned = upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             False, 'sub-02', None)
     # Assert output is as expected
     bids_hierarchy_expected = {project_label_cli: {'sub-02': bids_hierarchy['sub-02']}}
     bids_hierarchy_expected[project_label_cli]['files'] = []
     self.assertEqual(bids_hierarchy_returned,
             bids_hierarchy_expected)
     # Assert rootdir is expected
     self.assertEqual(rootdir_returned, '/root')
Ejemplo n.º 4
0
 def test_handle_project_label_sourcedata(self):
     """ """
     # Define inputs
     bids_hierarchy = {
             'project_label': {
                 'files': ['CHANGES', 'dataset_description.json'],
                 'code1': {'files': ['debug.py']},
                 'code2': {'files': ['debug.py']},
                 'sub-01': {
                     'files': [],
                     'anat': {'files': ['test.nii.gz']},
                     'dwi': {'files': ['test.nii.gz']},
                     'func': {'files': ['test.nii.gz']}},
                 'sourcedata': {
                     'sub-01': {
                         'files': [],
                         'anat': {'files': ['test.dcm.gz']},
                         'dwi': {'files': ['test.dcm.gz']},
                         'func': {'files': ['test.dcm.gz']}
                     }
                 }
             }
         }
     project_label_cli = None
     rootdir = '/root'
     # Call function
     bids_hierarchy_returned, rootdir_returned = upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             True, None, None)
     # Assert output is as expected
     self.assertEqual(bids_hierarchy_returned,
             bids_hierarchy)
     # Assert rootdir is expected
     self.assertEqual(rootdir_returned, rootdir)
     bids_hierarchy_returned, rootdir_returned = upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             False, None, None)
     # Assert output is as expected
     bids_hierarchy['project_label'].pop('sourcedata')
     self.assertEqual(bids_hierarchy_returned,
             bids_hierarchy)
     # Assert rootdir is expected
     self.assertEqual(rootdir_returned, rootdir)
Ejemplo n.º 5
0
 def test_handle_project_label_files(self):
     """ """
     # Define inputs
     bids_hierarchy = {'files': ['debug.py']}
     project_label_cli = None
     rootdir = '/root'
     # Assert SystemExit raised
     with self.assertRaises(SystemExit) as err:
         bids_hierarchy_returned = upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             False, None, None)
Ejemplo n.º 6
0
 def test_handle_project_label_group(self):
     """ """
     # Define inputs
     bids_hierarchy = {
             'group_id': {
                 'project_label': {
                     'files': ['CHANGES', 'dataset_description.json'],
                     'code1': {'files': ['debug.py']},
                     'code2': {'files': ['debug.py']},
                     'sub-01': {
                         'files': [],
                         'anat': {'files': ['test.nii.gz']},
                         'dwi': {'files': ['test.nii.gz']},
                         'func': {'files': ['test.nii.gz']}}}}}
     project_label_cli = None
     rootdir = '/root'
     # Assert SystemExit raised
     with self.assertRaises(SystemExit) as err:
         upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             False, None, None)
Ejemplo n.º 7
0
 def test_handle_project_label_sub_nocli(self):
     """ """
     # Define inputs
     bids_hierarchy = {
             'files': ['CHANGES', 'dataset_description.json'],
             'code1': {'files': ['debug.py']},
             'code2': {'files': ['debug.py']},
             'sub-01': {
                 'files': [],
                 'anat': {'files': ['test.nii.gz']},
                 'dwi': {'files': ['test.nii.gz']},
                 'func': {'files': ['test.nii.gz']}}
             }
     project_label_cli = None
     rootdir = '/root/sub-01'
     # Call function -- assert error raised because project label cannot be determined
     with self.assertRaises(SystemExit) as err:
         bids_hierarchy_returned = upload_bids.handle_project_label(
             copy.deepcopy(bids_hierarchy), project_label_cli, rootdir,
             False, None, None)