@@ -87,18 +87,9 @@ def test_metadata_propagation_indiv_resample(self):
8787 result = df .resample ("1T" )
8888 self .check_metadata (df , result )
8989
90- def test_metadata_propagation_indiv (self ):
90+ def test_metadata_propagation_indiv (self , monkeypatch ):
9191 # merging with override
9292 # GH 6923
93- _metadata = DataFrame ._metadata
94- _finalize = DataFrame .__finalize__
95-
96- np .random .seed (10 )
97- df1 = DataFrame (np .random .randint (0 , 4 , (3 , 2 )), columns = ["a" , "b" ])
98- df2 = DataFrame (np .random .randint (0 , 4 , (3 , 2 )), columns = ["c" , "d" ])
99- DataFrame ._metadata = ["filename" ]
100- df1 .filename = "fname1.csv"
101- df2 .filename = "fname2.csv"
10293
10394 def finalize (self , other , method = None , ** kwargs ):
10495
@@ -107,41 +98,37 @@ def finalize(self, other, method=None, **kwargs):
10798 left , right = other .left , other .right
10899 value = getattr (left , name , "" ) + "|" + getattr (right , name , "" )
109100 object .__setattr__ (self , name , value )
110- else :
111- object .__setattr__ (self , name , getattr (other , name , "" ))
112-
113- return self
114-
115- DataFrame .__finalize__ = finalize
116- result = df1 .merge (df2 , left_on = ["a" ], right_on = ["c" ], how = "inner" )
117- assert result .filename == "fname1.csv|fname2.csv"
118-
119- # concat
120- # GH 6927
121- DataFrame ._metadata = ["filename" ]
122- df1 = DataFrame (np .random .randint (0 , 4 , (3 , 2 )), columns = list ("ab" ))
123- df1 .filename = "foo"
124-
125- def finalize (self , other , method = None , ** kwargs ):
126- for name in self ._metadata :
127- if method == "concat" :
101+ elif method == "concat" :
128102 value = "+" .join (
129103 [getattr (o , name ) for o in other .objs if getattr (o , name , None )]
130104 )
131105 object .__setattr__ (self , name , value )
132106 else :
133- object .__setattr__ (self , name , getattr (other , name , None ))
107+ object .__setattr__ (self , name , getattr (other , name , "" ))
134108
135109 return self
136110
137- DataFrame .__finalize__ = finalize
111+ with monkeypatch .context () as m :
112+ m .setattr (DataFrame , "_metadata" , ["filename" ])
113+ m .setattr (DataFrame , "__finalize__" , finalize )
114+
115+ np .random .seed (10 )
116+ df1 = DataFrame (np .random .randint (0 , 4 , (3 , 2 )), columns = ["a" , "b" ])
117+ df2 = DataFrame (np .random .randint (0 , 4 , (3 , 2 )), columns = ["c" , "d" ])
118+ DataFrame ._metadata = ["filename" ]
119+ df1 .filename = "fname1.csv"
120+ df2 .filename = "fname2.csv"
121+
122+ result = df1 .merge (df2 , left_on = ["a" ], right_on = ["c" ], how = "inner" )
123+ assert result .filename == "fname1.csv|fname2.csv"
138124
139- result = pd .concat ([df1 , df1 ])
140- assert result .filename == "foo+foo"
125+ # concat
126+ # GH#6927
127+ df1 = DataFrame (np .random .randint (0 , 4 , (3 , 2 )), columns = list ("ab" ))
128+ df1 .filename = "foo"
141129
142- # reset
143- DataFrame ._metadata = _metadata
144- DataFrame .__finalize__ = _finalize # FIXME: use monkeypatch
130+ result = pd .concat ([df1 , df1 ])
131+ assert result .filename == "foo+foo"
145132
146133 def test_set_attribute (self ):
147134 # Test for consistent setattr behavior when an attribute and a column
0 commit comments