public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/xarray/, dev-python/xarray/files/
Date: Wed, 31 Jan 2024 12:00:11 +0000 (UTC)	[thread overview]
Message-ID: <1706702407.a67ced94919a812b36395f59069928082dc1e56c.mgorny@gentoo> (raw)

commit:     a67ced94919a812b36395f59069928082dc1e56c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 31 11:59:48 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 31 12:00:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a67ced94

dev-python/xarray: Add a pytest-8 patch

Closes: https://bugs.gentoo.org/923318
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../xarray/files/xarray-2024.1.1-pytest-8.patch    | 77 ++++++++++++++++++++++
 dev-python/xarray/xarray-2024.1.1.ebuild           | 41 +++++++-----
 2 files changed, 100 insertions(+), 18 deletions(-)

diff --git a/dev-python/xarray/files/xarray-2024.1.1-pytest-8.patch b/dev-python/xarray/files/xarray-2024.1.1-pytest-8.patch
new file mode 100644
index 000000000000..e85bb6de7b71
--- /dev/null
+++ b/dev-python/xarray/files/xarray-2024.1.1-pytest-8.patch
@@ -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(

diff --git a/dev-python/xarray/xarray-2024.1.1.ebuild b/dev-python/xarray/xarray-2024.1.1.ebuild
index 28602ca801b2..7d7d2b998d10 100644
--- a/dev-python/xarray/xarray-2024.1.1.ebuild
+++ b/dev-python/xarray/xarray-2024.1.1.ebuild
@@ -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


                 reply	other threads:[~2024-01-31 12:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1706702407.a67ced94919a812b36395f59069928082dc1e56c.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox