diff --git a/pandas/tests/extension/base/missing.py b/pandas/tests/extension/base/missing.py index 0277bb59bc7f5..85154862245ad 100644 --- a/pandas/tests/extension/base/missing.py +++ b/pandas/tests/extension/base/missing.py @@ -6,6 +6,8 @@ class BaseMissingTests: + _supports_fillna_copy_false = True + def test_isna(self, data_missing): expected = np.array([True, False]) @@ -193,3 +195,9 @@ def test_fillna_fill_other(self, data): expected = pd.DataFrame({"A": data, "B": [0.0] * len(result)}) tm.assert_frame_equal(result, expected) + + def test_fillna_readonly(self, data_missing): + fill_value = data_missing[1] + result = data_missing.fillna(fill_value, copy=False) + expected = data_missing.fillna(fill_value, copy=True) + tm.assert_extension_array_equal(result, expected) diff --git a/pandas/tests/extension/test_numpy.py b/pandas/tests/extension/test_numpy.py index c3f619e4263df..c24027e4489eb 100644 --- a/pandas/tests/extension/test_numpy.py +++ b/pandas/tests/extension/test_numpy.py @@ -169,6 +169,8 @@ def skip_numpy_object(dtype, request): class TestNumpyExtensionArray(base.ExtensionTests): + _supports_fillna_copy_false = False + @pytest.mark.skip(reason="We don't register our dtype") # We don't want to register. This test should probably be split in two. def test_from_dtype(self, data): diff --git a/pandas/tests/extension/test_sparse.py b/pandas/tests/extension/test_sparse.py index 4cbbda990b294..72f9a13910cc2 100644 --- a/pandas/tests/extension/test_sparse.py +++ b/pandas/tests/extension/test_sparse.py @@ -237,21 +237,6 @@ def test_isna(self, data_missing): def test_fillna_no_op_returns_copy(self, data, request): super().test_fillna_no_op_returns_copy(data) - def test_fillna_readonly(self, data_missing): - # copy keyword is ignored by SparseArray.fillna - # -> copy=True vs False doesn't make a difference - data = data_missing.copy() - data._readonly = True - - result = data.fillna(data_missing[1]) - assert result[0] == data_missing[1] - tm.assert_extension_array_equal(data, data_missing) - - # fillna(copy=False) is ignored -> so same result as above - result = data.fillna(data_missing[1], copy=False) - assert result[0] == data_missing[1] - tm.assert_extension_array_equal(data, data_missing) - @pytest.mark.xfail(reason="Unsupported") def test_fillna_series(self, data_missing): # this one looks doable.