diff -r 6b189f29b1e6 Lib/test/test_functools.py --- a/Lib/test/test_functools.py Wed Jun 05 18:37:50 2013 -0400 +++ b/Lib/test/test_functools.py Thu Jun 06 23:12:33 2013 +0800 @@ -868,15 +868,22 @@ @functools.singledispatch def g(obj): return "base" - class C: + class A: pass - class D(C): + class B: pass - def g_C(c): - return "C" - g.register(C, g_C) - self.assertEqual(g(C()), "C") - self.assertEqual(g(D()), "C") + class C(A): + pass + class D(C, B): + pass + def g_B(b): + return "B" + def g_A(a): + return "A" + g.register(B, g_B) + g.register(A, g_A) + #self.assertEqual(g(D()), "B") # I thought we check the class from left to right before going up + self.assertEqual(g(D()), "A") def test_classic_classes(self): @functools.singledispatch