Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions package/src/pyaslreport/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ def get_bids_metadata(data):
dicom_dir = data.get("dicom_dir")
dicom_header = get_dicom_header(dicom_dir)
sequence = get_sequence(modality, dicom_header)

if sequence is None:
raise ValueError(f"No matching sequence found for modality '{modality}' with the provided DICOM header")


return sequence.extract_bids_metadata()


Expand Down
13 changes: 7 additions & 6 deletions package/src/pyaslreport/tests/test_package.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest
from unittest.mock import patch, MagicMock
from .main import get_bids_metadata
from pyaslreport.main import get_bids_metadata

# filepath: /home/ibrahim/MyPc/Projects/GSoC/ASL-Parameter-Generator/package/src/pyaslreport/test_main.py

Expand All @@ -24,15 +24,16 @@ def test_get_bids_metadata_no_sequence():
data = {"modality": "asl", "dicom_dir": "/fake/dir"}
fake_header = MagicMock()
with patch("pyaslreport.main.get_dicom_header", return_value=fake_header), \
patch("pyaslreport.main.get_sequence", return_value=None):
patch("pyaslreport.main.get_sequence", side_effect=ValueError("No ASL sequence class found that matches the DICOM header")):
with pytest.raises(ValueError) as exc:
get_bids_metadata(data)
assert "No matching sequence found" in str(exc.value)
assert "No ASL sequence class found" in str(exc.value)

def test_get_bids_metadata_invalid_modality():
data = {"modality": None, "dicom_dir": "/fake/dir"}
fake_header = MagicMock()
with patch("pyaslreport.main.get_dicom_header", return_value=fake_header), \
patch("pyaslreport.main.get_sequence", return_value=None):
with pytest.raises(ValueError):
get_bids_metadata(data)
patch("pyaslreport.main.get_sequence", side_effect=ValueError("Unsupported modality: None")):
with pytest.raises(ValueError) as exc:
get_bids_metadata(data)
assert "Unsupported modality" in str(exc.value)