From a0582dc68b24b6d54ce4fb454456c21ded7f8988 Mon Sep 17 00:00:00 2001 From: Phil Schaf Date: Fri, 17 Jan 2025 14:25:40 +0100 Subject: [PATCH 1/3] Skip COO matrix tests for newer anndata --- tests/test_qc_metrics.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/test_qc_metrics.py b/tests/test_qc_metrics.py index 9c4cb75c12..d644d3d2dc 100644 --- a/tests/test_qc_metrics.py +++ b/tests/test_qc_metrics.py @@ -1,10 +1,13 @@ from __future__ import annotations +from importlib.metadata import version + import numpy as np import pandas as pd import pytest from anndata import AnnData from anndata.tests.helpers import assert_equal +from packaging.version import Version from scipy import sparse import scanpy as sc @@ -18,7 +21,7 @@ ) from testing.scanpy._helpers import as_sparse_dask_array, maybe_dask_process_context from testing.scanpy._pytest.marks import needs -from testing.scanpy._pytest.params import ARRAY_TYPES +from testing.scanpy._pytest.params import ARRAY_TYPES, ARRAY_TYPES_MEM @pytest.fixture @@ -198,8 +201,18 @@ def adata_mito(): return adata_dense, init_var +skip_if_adata_0_11_4 = pytest.mark.skipif( + Version(version("anndata")) >= Version("0.11.4.dev2"), + reason="Old AnnData doesn’t have sparse test helpers", +) + + @pytest.mark.parametrize( - "cls", [np.asarray, sparse.csr_matrix, sparse.csc_matrix, sparse.coo_matrix] + "cls", + [ + *ARRAY_TYPES_MEM, + pytest.param(sparse.coo_matrix, marks=[skip_if_adata_0_11_4], id="scipy_coo"), + ], ) def test_qc_metrics_format(cls): adata_dense, init_var = adata_mito() From 67d2bac8b1367dab740dd6aef781de4b300f0ff3 Mon Sep 17 00:00:00 2001 From: "Philipp A." Date: Mon, 20 Jan 2025 16:48:59 +0100 Subject: [PATCH 2/3] Update tests/test_qc_metrics.py --- tests/test_qc_metrics.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_qc_metrics.py b/tests/test_qc_metrics.py index d644d3d2dc..5ca028853b 100644 --- a/tests/test_qc_metrics.py +++ b/tests/test_qc_metrics.py @@ -203,7 +203,7 @@ def adata_mito(): skip_if_adata_0_11_4 = pytest.mark.skipif( Version(version("anndata")) >= Version("0.11.4.dev2"), - reason="Old AnnData doesn’t have sparse test helpers", + reason="Newer AnnData removes implicit support for COO matrices", ) From 2f551e0954b9721b80235c5be3e4870ace118a0d Mon Sep 17 00:00:00 2001 From: "Philipp A." Date: Tue, 21 Jan 2025 09:47:54 +0100 Subject: [PATCH 3/3] Apply suggestions from code review --- tests/test_qc_metrics.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_qc_metrics.py b/tests/test_qc_metrics.py index 5ca028853b..fd043ab0dc 100644 --- a/tests/test_qc_metrics.py +++ b/tests/test_qc_metrics.py @@ -201,8 +201,8 @@ def adata_mito(): return adata_dense, init_var -skip_if_adata_0_11_4 = pytest.mark.skipif( - Version(version("anndata")) >= Version("0.11.4.dev2"), +skip_if_adata_0_12 = pytest.mark.skipif( + Version(version("anndata")) >= Version("0.12.0.dev0"), reason="Newer AnnData removes implicit support for COO matrices", ) @@ -211,7 +211,7 @@ def adata_mito(): "cls", [ *ARRAY_TYPES_MEM, - pytest.param(sparse.coo_matrix, marks=[skip_if_adata_0_11_4], id="scipy_coo"), + pytest.param(sparse.coo_matrix, marks=[skip_if_adata_0_12], id="scipy_coo"), ], ) def test_qc_metrics_format(cls):