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
9 changes: 4 additions & 5 deletions package/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@ A Python package for generating methods sections and reports for ASL (Arterial S

### Prerequisites

- Python 3.7 or higher
- Python 3.8 or higher
- pip

### Install from Source
### Clone the Repository

```bash
# Clone the repository
git clone <repository-url>
cd ASL\ Generator/package
git clone https://github.com/OSIPI/Method-section-generator.git
cd Method-section-generator/package

# Install in development mode
pip install -e .
Expand Down
16 changes: 14 additions & 2 deletions package/src/pyaslreport/tests/test_package.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
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
# Test missing keys safely
def test_missing_key_returns_none():
data = {"dicom_dir": "/fake/path", "modality": None}
with patch("pyaslreport.main.get_dicom_header", return_value=None), \
patch("pyaslreport.main.get_sequence", return_value=None):
import pytest
with pytest.raises(ValueError) as exc:
get_bids_metadata(data)
assert "No matching sequence found" in str(exc.value)

# Test: normal successful run
def test_get_bids_metadata_success():
data = {"modality": "asl", "dicom_dir": "/fake/dir"}
fake_header = MagicMock()
Expand All @@ -15,11 +24,13 @@ def test_get_bids_metadata_success():
assert result == ("meta", "context")
fake_sequence.extract_bids_metadata.assert_called_once()

# Test: no dicom_dir raises TypeError
def test_get_bids_metadata_no_dicom_dir():
data = {"modality": "asl"}
with pytest.raises(TypeError):
get_bids_metadata(data)

# Test: no sequence raises ValueError
def test_get_bids_metadata_no_sequence():
data = {"modality": "asl", "dicom_dir": "/fake/dir"}
fake_header = MagicMock()
Expand All @@ -29,6 +40,7 @@ def test_get_bids_metadata_no_sequence():
get_bids_metadata(data)
assert "No matching sequence found" in str(exc.value)

# Test: invalid modality raises ValueError
def test_get_bids_metadata_invalid_modality():
data = {"modality": None, "dicom_dir": "/fake/dir"}
fake_header = MagicMock()
Expand Down
3 changes: 3 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[pytest]
testpaths = package/src/pyaslreport/tests
addopts = -m "not backend"