@@ -101,6 +101,9 @@ def data_for_grouping(dtype, chunked):
101101
102102
103103class TestStringArray (base .ExtensionTests ):
104+ def _honors_copy_keyword (self , data ) -> bool :
105+ return data .dtype .storage != "pyarrow"
106+
104107 @pytest .mark .parametrize ("na_action" , [None , "ignore" ])
105108 def test_map (self , data_missing , na_action , request , using_infer_string ):
106109 if data_missing .dtype .storage == "python" and not using_infer_string :
@@ -180,25 +183,6 @@ def test_fillna_no_op_returns_copy(self, data):
180183 assert result is not data
181184 tm .assert_extension_array_equal (result , data )
182185
183- def test_fillna_readonly (self , data_missing ):
184- data = data_missing .copy ()
185- data ._readonly = True
186-
187- # by default fillna(copy=True), then this works fine
188- result = data .fillna (data_missing [1 ])
189- assert result [0 ] == data_missing [1 ]
190- tm .assert_extension_array_equal (data , data_missing )
191-
192- # fillna(copy=False) is generally not honored by Arrow-backed array,
193- # but always returns new data -> same result as above
194- if data .dtype .storage == "pyarrow" :
195- result = data .fillna (data_missing [1 ])
196- assert result [0 ] == data_missing [1 ]
197- else :
198- with pytest .raises (ValueError , match = "Cannot modify read-only array" ):
199- data .fillna (data_missing [1 ], copy = False )
200- tm .assert_extension_array_equal (data , data_missing )
201-
202186 def _get_expected_exception (
203187 self , op_name : str , obj , other
204188 ) -> type [Exception ] | tuple [type [Exception ], ...] | None :
0 commit comments