Skip to content

Commit 27234b4

Browse files
committed
Add CI tests for Python 3.13
1 parent 5d3ceec commit 27234b4

File tree

3 files changed

+48
-42
lines changed

3 files changed

+48
-42
lines changed

.github/workflows/testsuite.yml

Lines changed: 46 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -13,46 +13,50 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
os: [ubuntu-latest, macOS-latest, windows-latest]
16-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
16+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
17+
exclude:
18+
# exclude while some tests fail due to a known issue in pyfakefs
19+
- python-version: "3.13"
20+
os: macOS-latest
1721
steps:
18-
- uses: actions/checkout@v4
19-
- name: Set up Python ${{ matrix.python-version }}
20-
uses: actions/setup-python@v5
21-
with:
22-
python-version: ${{ matrix.python-version }}
23-
24-
- name: Cache DICOM standard
25-
id: cache-dicom
26-
uses: actions/cache@v4
27-
with:
28-
path: dicom_validator/tests/fixtures/standard
29-
key: "2015b_2024e"
30-
enableCrossOsArchive: true
31-
32-
- name: Download DICOM standard
33-
if: steps.cache-dicom.outputs.cache-hit != 'true'
34-
run: |
35-
pip install -e .
36-
python .github/workflows/get_revision.py 2015b "`pwd`/dicom_validator/tests/fixtures/standard"
37-
python .github/workflows/get_revision.py 2024e "`pwd`/dicom_validator/tests/fixtures/standard"
38-
39-
- name: Install dependencies
40-
run: |
41-
python -m pip install --upgrade pip
42-
pip install -r requirements-dev.txt
43-
pip install -e .
44-
45-
- name: Run tests with coverage
46-
run: |
47-
if [[ '${{ matrix.os }}' == 'ubuntu-latest' && '${{ matrix.python-version }}' == '3.10' ]]
48-
then
49-
python -m pytest --cov=dicom_validator --cov-config=.coveragerc dicom_validator
50-
else
51-
python -m pytest dicom_validator
52-
fi
53-
54-
- name: Upload coverage to Codecov
55-
uses: codecov/codecov-action@v5
56-
if: ${{ success() && matrix.python-version == '3.10' && matrix.os == 'ubuntu-latest' }}
57-
with:
58-
name: codecov-dicom-validator
22+
- uses: actions/checkout@v4
23+
- name: Set up Python ${{ matrix.python-version }}
24+
uses: actions/setup-python@v5
25+
with:
26+
python-version: ${{ matrix.python-version }}
27+
28+
- name: Cache DICOM standard
29+
id: cache-dicom
30+
uses: actions/cache@v4
31+
with:
32+
path: dicom_validator/tests/fixtures/standard
33+
key: "2015b_2024e"
34+
enableCrossOsArchive: true
35+
36+
- name: Download DICOM standard
37+
if: steps.cache-dicom.outputs.cache-hit != 'true'
38+
run: |
39+
pip install -e .
40+
python .github/workflows/get_revision.py 2015b "`pwd`/dicom_validator/tests/fixtures/standard"
41+
python .github/workflows/get_revision.py 2024e "`pwd`/dicom_validator/tests/fixtures/standard"
42+
43+
- name: Install dependencies
44+
run: |
45+
python -m pip install --upgrade pip
46+
pip install -r requirements-dev.txt
47+
pip install -e .
48+
49+
- name: Run tests with coverage
50+
run: |
51+
if [[ '${{ matrix.os }}' == 'ubuntu-latest' && '${{ matrix.python-version }}' == '3.10' ]]
52+
then
53+
python -m pytest --cov=dicom_validator --cov-config=.coveragerc dicom_validator
54+
else
55+
python -m pytest dicom_validator
56+
fi
57+
58+
- name: Upload coverage to Codecov
59+
uses: codecov/codecov-action@v5
60+
if: ${{ success() && matrix.python-version == '3.10' && matrix.os == 'ubuntu-latest' }}
61+
with:
62+
name: codecov-dicom-validator

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Fixes for enum checks.
5454

5555
### Features
5656
* added checking of enumerated values defined for a specific index
57+
* added CI tests for Python 3.13
5758

5859
### Fixes
5960
* fixed exception on parsing some older DICOM standard versions

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ classifiers = [
2020
"Programming Language :: Python :: 3.10",
2121
"Programming Language :: Python :: 3.11",
2222
"Programming Language :: Python :: 3.12",
23+
"Programming Language :: Python :: 3.13",
2324
"Operating System :: POSIX :: Linux",
2425
"Operating System :: MacOS",
2526
"Operating System :: Microsoft :: Windows",

0 commit comments

Comments
 (0)