@@ -225,23 +225,35 @@ def test_repr(self):
225225 def test_equality (self ):
226226 p = functools .partial (capture , 1 , 2 , a = 10 , b = 20 )
227227 q = functools .partial (capture , 1 , 2 , a = 10 , b = 20 )
228+
228229 self .assertTrue (p == q )
229230 self .assertFalse (p != q )
230231 self .assertTrue (p .__eq__ (q ))
231232 self .assertFalse (p .__ne__ (q ))
232-
233- q = self .partial (capture , 1 , 2 , a = 10 )
234- self .assertFalse (p == q )
235- self .assertTrue (p != q )
236-
237- self .assertNotEqual (p , capture )
238- self .assertNotEqual (q , capture )
233+ self .assertTrue (p .func == q .func )
234+ self .assertTrue (p .func == capture )
235+ self .assertTrue (p .args == q .args )
236+ self .assertTrue (p .keywords == q .keywords )
237+
238+ k = self .partial (capture , 1 , 2 , a = 10 )
239+ self .assertFalse (p == k )
240+ self .assertTrue (p != k )
241+ self .assertTrue (p .func == k .func )
242+ self .assertTrue (p .args == k .args )
243+ self .assertFalse (p .keywords == k .keywords )
239244
240245 a = self .partial (capture )
241246 b = self .partial (signature )
242247 self .assertFalse (a == b )
243248 self .assertTrue (a != b )
244249
250+ # Check against other types
251+ self .assertNotEqual (p .func , repr )
252+ self .assertNotEqual (p , capture )
253+ self .assertNotEqual (q , capture )
254+ self .assertNotEqual (q , functools .partial )
255+
256+
245257 def test_recursive_repr (self ):
246258 if self .partial in (c_functools .partial , py_functools .partial ):
247259 name = 'functools.partial'
0 commit comments