@@ -107,12 +107,24 @@ def test_series_from_array_different_dtype(copy):
107107def test_series_from_index (idx ):
108108 ser = Series (idx )
109109 expected = idx .copy (deep = True )
110- assert np .shares_memory (get_array (ser ), get_array (idx ))
111- assert not ser ._mgr ._has_no_reference (0 )
110+ assert not np .shares_memory (get_array (ser ), get_array (idx ))
111+ assert ser ._mgr ._has_no_reference (0 )
112112 ser .iloc [0 ] = ser .iloc [1 ]
113113 tm .assert_index_equal (idx , expected )
114114
115115
116+ def test_series_from_temporary_index_readonly_data ():
117+ # GH 63306
118+ arr = np .array ([0 , 1 ])
119+ arr .flags .writeable = False
120+ ser = Series (Index (arr ))
121+ assert not np .shares_memory (arr , get_array (ser ))
122+ assert ser ._mgr ._has_no_reference (0 )
123+ ser [[False , True ]] = [0 , 2 ]
124+ expected = Series ([0 , 2 ])
125+ tm .assert_series_equal (ser , expected )
126+
127+
116128def test_series_from_index_different_dtypes ():
117129 idx = Index ([1 , 2 , 3 ], dtype = "int64" )
118130 ser = Series (idx , dtype = "int32" )
0 commit comments