mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-05 00:08:05 +03:00
dev-python/xarray: Add a pytest-8 patch
Closes: https://bugs.gentoo.org/923318 Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
77
dev-python/xarray/files/xarray-2024.1.1-pytest-8.patch
Normal file
77
dev-python/xarray/files/xarray-2024.1.1-pytest-8.patch
Normal file
@@ -0,0 +1,77 @@
|
||||
From 306a50e344522a3f321d49d95488f457975fa553 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Wed, 31 Jan 2024 11:31:26 +0100
|
||||
Subject: [PATCH 1/2] test_dataset: remove incorrect pytest.warns() to fix
|
||||
pytest-8
|
||||
|
||||
Remove two incorrect `pytest.warns()` assertions to fix test failures
|
||||
with pytest-8.0.0. Prior to this version, an exception raised would
|
||||
cause `pytest.warns()` to be ignored. This way fixed in 8.0.0, and now
|
||||
warnings must actually be emitted prior to the exception.
|
||||
|
||||
In `test_drop_index_labels()`, the exception is raised at the very
|
||||
beginning of the function, prior to the deprecation warning.
|
||||
|
||||
In `test_rename_multiindex()`, the warning is not emitted at all (it is
|
||||
not applicable to the call in question).
|
||||
---
|
||||
xarray/tests/test_dataset.py | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/xarray/tests/test_dataset.py b/xarray/tests/test_dataset.py
|
||||
index fa9448f2f4..77d172f00b 100644
|
||||
--- a/xarray/tests/test_dataset.py
|
||||
+++ b/xarray/tests/test_dataset.py
|
||||
@@ -2724,8 +2724,7 @@ def test_drop_index_labels(self) -> None:
|
||||
assert_identical(data, actual)
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
- with pytest.warns(DeprecationWarning):
|
||||
- data.drop(["c"], dim="x", errors="wrong_value") # type: ignore[arg-type]
|
||||
+ data.drop(["c"], dim="x", errors="wrong_value") # type: ignore[arg-type]
|
||||
|
||||
with pytest.warns(DeprecationWarning):
|
||||
actual = data.drop(["a", "b", "c"], "x", errors="ignore")
|
||||
@@ -3159,8 +3158,7 @@ def test_rename_multiindex(self) -> None:
|
||||
original.rename({"a": "x"})
|
||||
|
||||
with pytest.raises(ValueError, match=r"'b' conflicts"):
|
||||
- with pytest.warns(UserWarning, match="does not create an index anymore"):
|
||||
- original.rename({"a": "b"})
|
||||
+ original.rename({"a": "b"})
|
||||
|
||||
def test_rename_perserve_attrs_encoding(self) -> None:
|
||||
# test propagate attrs/encoding to new variable(s) created from Index object
|
||||
|
||||
From 3bc5abf4da35edda1f0c3e9e0d53e39331c1a76b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Wed, 31 Jan 2024 11:35:04 +0100
|
||||
Subject: [PATCH 2/2] test_groupby: Clear recorded warnings for pytest-8
|
||||
compatibility
|
||||
|
||||
Clear the warnings recorded during the `pytest.warns()` use
|
||||
in `test_groupby_dims_property`, to fix test failures with pytest-8.0.0.
|
||||
Prior to this version, `pytest.warns()` invocation used to capture all
|
||||
warnings. Now it only captures the warnings that match the arguments,
|
||||
and the remaining warnings are re-emitted and therefore caught by
|
||||
`recwarn` fixture. To provide compatibility with both versions of
|
||||
pytest, clear the recorded warnings immediately after `pytest.warns()`.
|
||||
|
||||
Fixes #8681
|
||||
---
|
||||
xarray/tests/test_groupby.py | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/xarray/tests/test_groupby.py b/xarray/tests/test_groupby.py
|
||||
index 25fabd5e2b..b65c01fe76 100644
|
||||
--- a/xarray/tests/test_groupby.py
|
||||
+++ b/xarray/tests/test_groupby.py
|
||||
@@ -67,6 +67,8 @@ def test_groupby_dims_property(dataset, recwarn) -> None:
|
||||
with pytest.warns(UserWarning, match="The `squeeze` kwarg"):
|
||||
assert dataset.groupby("x").dims == dataset.isel(x=1).dims
|
||||
assert dataset.groupby("y").dims == dataset.isel(y=1).dims
|
||||
+ # in pytest-8, pytest.warns() no longer clears all warnings
|
||||
+ recwarn.clear()
|
||||
|
||||
# when squeeze=False, no warning should be raised
|
||||
assert tuple(dataset.groupby("x", squeeze=False).dims) == tuple(
|
||||
@@ -40,27 +40,32 @@ BDEPEND="
|
||||
EPYTEST_XDIST=1
|
||||
distutils_enable_tests pytest
|
||||
|
||||
EPYTEST_DESELECT=(
|
||||
# warning-targeted tests are fragile and not important to end users
|
||||
xarray/tests/test_backends.py::test_no_warning_from_dask_effective_get
|
||||
# TODO: segv in netcdf4-python
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-5-5]'
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-5-None]'
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-None-5]'
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-None-None]'
|
||||
xarray/tests/test_backends.py::TestDask::test_save_mfdataset_compute_false_roundtrip
|
||||
# TODO: broken
|
||||
xarray/tests/test_backends.py::TestNetCDF4Data
|
||||
xarray/tests/test_backends.py::TestNetCDF4ViaDaskData
|
||||
# hangs
|
||||
xarray/tests/test_backends.py::TestDask::test_dask_roundtrip
|
||||
# mismatches when pyarrow is installed
|
||||
# https://github.com/pydata/xarray/issues/8092
|
||||
xarray/tests/test_dask.py::TestToDaskDataFrame::test_to_dask_dataframe_2D
|
||||
xarray/tests/test_dask.py::TestToDaskDataFrame::test_to_dask_dataframe_not_daskarray
|
||||
PATCHES=(
|
||||
# https://github.com/pydata/xarray/pull/8686
|
||||
"${FILESDIR}/${P}-pytest-8.patch"
|
||||
)
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=(
|
||||
# warning-targeted tests are fragile and not important to end users
|
||||
xarray/tests/test_backends.py::test_no_warning_from_dask_effective_get
|
||||
# TODO: segv in netcdf4-python
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-5-5]'
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-5-None]'
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-None-5]'
|
||||
'xarray/tests/test_backends.py::test_open_mfdataset_manyfiles[netcdf4-20-True-None-None]'
|
||||
xarray/tests/test_backends.py::TestDask::test_save_mfdataset_compute_false_roundtrip
|
||||
# TODO: broken
|
||||
xarray/tests/test_backends.py::TestNetCDF4Data
|
||||
xarray/tests/test_backends.py::TestNetCDF4ViaDaskData
|
||||
# hangs
|
||||
xarray/tests/test_backends.py::TestDask::test_dask_roundtrip
|
||||
# mismatches when pyarrow is installed
|
||||
# https://github.com/pydata/xarray/issues/8092
|
||||
xarray/tests/test_dask.py::TestToDaskDataFrame::test_to_dask_dataframe_2D
|
||||
xarray/tests/test_dask.py::TestToDaskDataFrame::test_to_dask_dataframe_not_daskarray
|
||||
)
|
||||
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
|
||||
if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
|
||||
|
||||
Reference in New Issue
Block a user