| 2282 | self.assertEqual(g([1,2,3]), "base") |
| 2283 | |
| 2284 | def test_mro(self): |
| 2285 | @functools.singledispatch |
| 2286 | def g(obj): |
| 2287 | return "base" |
| 2288 | class A: |
| 2289 | pass |
| 2290 | class C(A): |
| 2291 | pass |
| 2292 | class B(A): |
| 2293 | pass |
| 2294 | class D(C, B): |
| 2295 | pass |
| 2296 | def g_A(a): |
| 2297 | return "A" |
| 2298 | def g_B(b): |
| 2299 | return "B" |
| 2300 | g.register(A, g_A) |
| 2301 | g.register(B, g_B) |
| 2302 | self.assertEqual(g(A()), "A") |
| 2303 | self.assertEqual(g(B()), "B") |
| 2304 | self.assertEqual(g(C()), "A") |
| 2305 | self.assertEqual(g(D()), "B") |
| 2306 | |
| 2307 | def test_register_decorator(self): |
| 2308 | @functools.singledispatch |