Skip to content

Commit

Permalink
feat: add marks and change pytest runs for pll
Browse files Browse the repository at this point in the history
  • Loading branch information
asoplata committed Nov 8, 2024
1 parent 11e90c4 commit 7afbe60
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 6 deletions.
14 changes: 9 additions & 5 deletions .github/workflows/unix_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install Python dependencies
shell: bash -el {0}
run: |
if [ ${{ matrix.os }} == 'macos-latest' ]; then
python -m pip install --upgrade pip
conda install --yes -c conda-forge mpi4py openmpi
elif [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then
elif [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then
python -m pip install --upgrade pip
python -m pip install mpi4py
fi
Expand All @@ -58,11 +58,15 @@
shell: bash -el {0}
run: |
flake8 --count hnn_core
- name: Test with pytest
- name: Test embarrassingly parallel tests with pytest
shell: bash -el {0}
run: |
python -m pytest ./hnn_core/tests/ -m "not already_parallel" -n auto --cov=hnn_core --cov-report=xml
- name: Test true parallel tests with pytest
shell: bash -el {0}
run: |
python -m pytest ./hnn_core/tests/ --cov=hnn_core --cov-report=xml
python -m pytest ./hnn_core/tests/ -m "already_parallel" --cov=hnn_core --cov-report=xml --cov-append
- name: Upload coverage to Codecov
shell: bash -el {0}
run: |
bash <(curl -s https://codecov.io/bash) -f ./coverage.xml
bash <(curl -s https://codecov.io/bash) -f ./coverage.xml
1 change: 1 addition & 0 deletions hnn_core/tests/test_dipole.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@ def test_dipole_simulation():

@requires_mpi4py
@requires_psutil
@pytest.mark.already_parallel
def test_cell_response_backends(run_hnn_core_fixture):
"""Test cell_response outputs across backends."""

Expand Down
1 change: 1 addition & 0 deletions hnn_core/tests/test_extracellular.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ def test_transfer_resistance():

@requires_mpi4py
@requires_psutil
@pytest.mark.already_parallel
def test_extracellular_backends(run_hnn_core_fixture):
"""Test extracellular outputs across backends."""
# calculation of CSD requires >=4 electrode contacts
Expand Down
1 change: 1 addition & 0 deletions hnn_core/tests/test_gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,7 @@ def test_gui_init_network(setup_gui):

@requires_mpi4py
@requires_psutil
@pytest.mark.already_parallel
def test_gui_run_simulation_mpi():
"""Test if run button triggers simulation with MPIBackend."""
gui = HNNGUI()
Expand Down
2 changes: 2 additions & 0 deletions hnn_core/tests/test_parallel_backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ def test_gid_assignment():


@pytest.mark.incremental
@pytest.mark.already_parallel
class TestParallelBackends():
dpls_reduced_mpi = None
dpls_reduced_default = None
Expand Down Expand Up @@ -241,6 +242,7 @@ def test_compare_hnn_core(self, run_hnn_core_fixture, backend, n_jobs=1):
# class marked incremental
@requires_mpi4py
@requires_psutil
@pytest.mark.already_parallel
def test_mpi_failure(run_hnn_core_fixture):
"""Test that an MPI failure is handled and messages are printed"""
# this MPI parameter will cause a MPI job to fail
Expand Down
2 changes: 2 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[pytest]
markers =
already_parallel: tests that should not be run across multiple cores by pytest
incremental: run tests with prerequisites in incremental order

2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def run(self):
extras = {
'opt': ['scikit-learn'],
'parallel': ['joblib', 'psutil'],
'test': ['flake8', 'pytest', 'pytest-cov', ],
'test': ['flake8', 'pytest', 'pytest-cov', 'pytest-xdist'],
'docs': ['mne', 'nibabel', 'pooch', 'tdqm',
'sphinx', 'sphinx-gallery',
'sphinx_bootstrap_theme', 'sphinx-copybutton',
Expand Down

0 comments on commit 7afbe60

Please sign in to comment.