Skip to content

Commit 183aaa3

Browse files
committed
FIX: add test for grabbing pet and/or functional data
1 parent f8b4e4b commit 183aaa3

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

niworkflows/interfaces/tests/test_bids.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,3 +806,27 @@ def test_BIDSDataGrabber():
806806

807807
x = bintfs.BIDSDataGrabber(anat_derivatives='derivatives')
808808
assert x._require_t1w is False
809+
810+
811+
def test_require_func_pet_behavior():
812+
from niworkflows.interfaces.bids import BIDSDataGrabber
813+
import pytest
814+
815+
subject_data_pet = {'t1w': ['t1.nii'], 'bold': [], 'pet': ['pet.nii']}
816+
subject_data_bold = {'t1w': ['t1.nii'], 'bold': ['bold.nii'], 'pet': []}
817+
818+
# PET present, functional not required
819+
grabber_pet = BIDSDataGrabber(subject_data=subject_data_pet, subject_id='01', require_pet=True)
820+
assert grabber_pet._require_funcs is False
821+
assert grabber_pet._require_pet is True
822+
grabber_pet.run() # Should succeed without bold data
823+
824+
# PET absent, functional required by default
825+
grabber_func = BIDSDataGrabber(subject_data=subject_data_bold, subject_id='01')
826+
assert grabber_func._require_funcs is True
827+
grabber_func.run() # Should succeed with bold data
828+
829+
# Fail when bold is required but missing
830+
grabber_fail = BIDSDataGrabber(subject_data=subject_data_pet, subject_id='01')
831+
with pytest.raises(FileNotFoundError, match='No functional images found'):
832+
grabber_fail.run()

0 commit comments

Comments
 (0)