diff --git a/pandas/_testing/asserters.py b/pandas/_testing/asserters.py index 3f95997bb84f4..9701bd877ab3a 100644 --- a/pandas/_testing/asserters.py +++ b/pandas/_testing/asserters.py @@ -951,6 +951,10 @@ def assert_series_equal( >>> b = pd.Series([1, 2, 3, 4]) >>> tm.assert_series_equal(a, b) """ + if not check_dtype: + left = left.astype("object") + right = right.astype("object") + __tracebackhide__ = True if ( check_exact is lib.no_default diff --git a/pandas/tests/util/test_assert_series_equal.py b/pandas/tests/util/test_assert_series_equal.py index 8c9fff8e6ae2d..79b141a9393db 100644 --- a/pandas/tests/util/test_assert_series_equal.py +++ b/pandas/tests/util/test_assert_series_equal.py @@ -10,6 +10,16 @@ import pandas._testing as tm +def test_assert_frame_equal_na_different_dtype(): + import pandas as pd + from pandas.testing import assert_frame_equal + + df1 = pd.DataFrame({"x": pd.Series([pd.NA], dtype="Int32")}) + df2 = pd.DataFrame({"x": pd.Series([pd.NA], dtype="object")}) + + assert_frame_equal(df1, df2, check_dtype=False) + + def _assert_series_equal_both(a, b, **kwargs): """ Check that two Series equal.