Skip to content

Commit 453b25f

Browse files
committed
EA attribute specifying whether copy=False is ignored
1 parent 0df38db commit 453b25f

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

pandas/tests/extension/base/missing.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,24 @@ def test_fillna_no_op_returns_copy(self, data):
125125
tm.assert_extension_array_equal(result, data)
126126

127127
def test_fillna_readonly(self, data_missing):
128+
fill_value = data_missing[1]
128129
data = data_missing.copy()
129130
data._readonly = True
130131

131132
# by default fillna(copy=True), then this works fine
132-
result = data.fillna(data_missing[1])
133-
assert result[0] == data_missing[1]
134-
tm.assert_extension_array_equal(data, data_missing)
135-
136-
# but with copy=False, this raises for EAs that respect the copy keyword
137-
with pytest.raises(ValueError, match="Cannot modify read-only array"):
138-
data.fillna(data_missing[1], copy=False)
133+
res_copy = data.fillna(fill_value, copy=True)
134+
assert res_copy[0] == fill_value
139135
tm.assert_extension_array_equal(data, data_missing)
136+
137+
if self._supports_fillna_copy_false:
138+
# but with copy=False, this raises for EAs that respect the copy keyword
139+
with pytest.raises(ValueError, match="Cannot modify read-only array"):
140+
data.fillna(fill_value, copy=False)
141+
tm.assert_extension_array_equal(data, data_missing)
142+
else:
143+
res_no_copy = data.fillna(fill_value, copy=False)
144+
tm.assert_extension_array_equal(res_no_copy, res_copy)
145+
tm.assert_extension_array_equal(data, data_missing)
140146

141147
def test_fillna_series(self, data_missing):
142148
fill_value = data_missing[1]
@@ -196,8 +202,3 @@ def test_fillna_fill_other(self, data):
196202

197203
tm.assert_frame_equal(result, expected)
198204

199-
def test_fillna_readonly(self, data_missing):
200-
fill_value = data_missing[1]
201-
result = data_missing.fillna(fill_value, copy=False)
202-
expected = data_missing.fillna(fill_value, copy=True)
203-
tm.assert_extension_array_equal(result, expected)

0 commit comments

Comments
 (0)