From 3e9aced02ec53e3605e92eef7548aace23361e84 Mon Sep 17 00:00:00 2001 From: Patrick Hoefler Date: Mon, 20 Feb 2023 21:45:24 +0000 Subject: [PATCH 1/3] CI: catch warnings in ci --- pandas/tests/frame/test_query_eval.py | 4 +++- pandas/tests/series/test_arithmetic.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pandas/tests/frame/test_query_eval.py b/pandas/tests/frame/test_query_eval.py index 7abc8e5eb92cc..f0f1654eebed9 100644 --- a/pandas/tests/frame/test_query_eval.py +++ b/pandas/tests/frame/test_query_eval.py @@ -1332,7 +1332,9 @@ def test_query_ea_dtypes(self, dtype): # GH#50261 df = DataFrame({"a": Series([1, 2], dtype=dtype)}) ref = {2} # noqa:F841 - result = df.query("a in @ref") + warning = RuntimeWarning if dtype != "int64" else None + with tm.assert_produces_warning(warning): + result = df.query("a in @ref") expected = DataFrame({"a": Series([2], dtype=dtype, index=[1])}) tm.assert_frame_equal(result, expected) diff --git a/pandas/tests/series/test_arithmetic.py b/pandas/tests/series/test_arithmetic.py index e4044feab1cbd..28903a87df9d6 100644 --- a/pandas/tests/series/test_arithmetic.py +++ b/pandas/tests/series/test_arithmetic.py @@ -352,11 +352,13 @@ def test_add_list_to_masked_array(self, val, dtype): def test_add_list_to_masked_array_boolean(self): # GH#22962 ser = Series([True, None, False], dtype="boolean") - result = ser + [True, None, True] + with tm.assert_produces_warning(UserWarning): + result = ser + [True, None, True] expected = Series([True, None, True], dtype="boolean") tm.assert_series_equal(result, expected) - result = [True, None, True] + ser + with tm.assert_produces_warning(UserWarning): + result = [True, None, True] + ser tm.assert_series_equal(result, expected) From 988c8e9de073b879795d0b270e06c7ae9d6569f7 Mon Sep 17 00:00:00 2001 From: Patrick Hoefler Date: Mon, 20 Feb 2023 21:50:43 +0000 Subject: [PATCH 2/3] CI: catch warnings in ci --- pandas/tests/frame/test_query_eval.py | 2 +- pandas/tests/series/test_arithmetic.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pandas/tests/frame/test_query_eval.py b/pandas/tests/frame/test_query_eval.py index f0f1654eebed9..0438d60464afd 100644 --- a/pandas/tests/frame/test_query_eval.py +++ b/pandas/tests/frame/test_query_eval.py @@ -1332,7 +1332,7 @@ def test_query_ea_dtypes(self, dtype): # GH#50261 df = DataFrame({"a": Series([1, 2], dtype=dtype)}) ref = {2} # noqa:F841 - warning = RuntimeWarning if dtype != "int64" else None + warning = RuntimeWarning if dtype == "Int64" else None with tm.assert_produces_warning(warning): result = df.query("a in @ref") expected = DataFrame({"a": Series([2], dtype=dtype, index=[1])}) diff --git a/pandas/tests/series/test_arithmetic.py b/pandas/tests/series/test_arithmetic.py index 28903a87df9d6..3c436f74f5e02 100644 --- a/pandas/tests/series/test_arithmetic.py +++ b/pandas/tests/series/test_arithmetic.py @@ -38,6 +38,7 @@ def switch_numexpr_min_elements(request): _MIN_ELEMENTS = expr._MIN_ELEMENTS expr._MIN_ELEMENTS = request.param + print("hello") yield request.param expr._MIN_ELEMENTS = _MIN_ELEMENTS @@ -349,15 +350,16 @@ def test_add_list_to_masked_array(self, val, dtype): result = [1, None, val] + ser tm.assert_series_equal(result, expected) - def test_add_list_to_masked_array_boolean(self): + def test_add_list_to_masked_array_boolean(self, request): # GH#22962 + warning = UserWarning if request.node.callspec.id == "numexpr" else None ser = Series([True, None, False], dtype="boolean") - with tm.assert_produces_warning(UserWarning): + with tm.assert_produces_warning(warning): result = ser + [True, None, True] expected = Series([True, None, True], dtype="boolean") tm.assert_series_equal(result, expected) - with tm.assert_produces_warning(UserWarning): + with tm.assert_produces_warning(warning): result = [True, None, True] + ser tm.assert_series_equal(result, expected) From cebdefa604090fcff8d3ecdc9cb326a094246601 Mon Sep 17 00:00:00 2001 From: Patrick Hoefler Date: Tue, 21 Feb 2023 09:13:41 +0000 Subject: [PATCH 3/3] Fix tests when numexpr not installed --- pandas/tests/frame/test_query_eval.py | 2 +- pandas/tests/series/test_arithmetic.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pandas/tests/frame/test_query_eval.py b/pandas/tests/frame/test_query_eval.py index 0438d60464afd..fc0c81339de08 100644 --- a/pandas/tests/frame/test_query_eval.py +++ b/pandas/tests/frame/test_query_eval.py @@ -1332,7 +1332,7 @@ def test_query_ea_dtypes(self, dtype): # GH#50261 df = DataFrame({"a": Series([1, 2], dtype=dtype)}) ref = {2} # noqa:F841 - warning = RuntimeWarning if dtype == "Int64" else None + warning = RuntimeWarning if dtype == "Int64" and NUMEXPR_INSTALLED else None with tm.assert_produces_warning(warning): result = df.query("a in @ref") expected = DataFrame({"a": Series([2], dtype=dtype, index=[1])}) diff --git a/pandas/tests/series/test_arithmetic.py b/pandas/tests/series/test_arithmetic.py index 3c436f74f5e02..2911ae2c983ab 100644 --- a/pandas/tests/series/test_arithmetic.py +++ b/pandas/tests/series/test_arithmetic.py @@ -32,6 +32,7 @@ ops, ) from pandas.core.computation import expressions as expr +from pandas.core.computation.check import NUMEXPR_INSTALLED @pytest.fixture(autouse=True, params=[0, 1000000], ids=["numexpr", "python"]) @@ -352,7 +353,11 @@ def test_add_list_to_masked_array(self, val, dtype): def test_add_list_to_masked_array_boolean(self, request): # GH#22962 - warning = UserWarning if request.node.callspec.id == "numexpr" else None + warning = ( + UserWarning + if request.node.callspec.id == "numexpr" and NUMEXPR_INSTALLED + else None + ) ser = Series([True, None, False], dtype="boolean") with tm.assert_produces_warning(warning): result = ser + [True, None, True]