diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-09-22 06:10:55 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-09-22 06:10:55 (GMT) |
commit | e0b2d7ac9aea548d0bee1cdabd5d7b1254a6569d (patch) | |
tree | 277d3df4bdf475df490eb652e387707951c945ab /Lib/test/test_inspect.py | |
parent | c377b16d12ba325bb108eca575447d66f19294c0 (diff) | |
download | cpython-e0b2d7ac9aea548d0bee1cdabd5d7b1254a6569d.zip cpython-e0b2d7ac9aea548d0bee1cdabd5d7b1254a6569d.tar.gz cpython-e0b2d7ac9aea548d0bee1cdabd5d7b1254a6569d.tar.bz2 |
Add a function to compute a class's method resolution order. This is
easy for 2.2 new-style classes, but trickier for classic classes, and
different approaches are needed "depending". The function will allow
later code to treat all flavors of classes uniformly.
Diffstat (limited to 'Lib/test/test_inspect.py')
-rw-r--r-- | Lib/test/test_inspect.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 130fa8e..dbb6609 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -213,3 +213,23 @@ for fname in files_to_clean_up: os.unlink(fname) except: pass + +# Test classic-class method resolution order. +class A: pass +class B(A): pass +class C(A): pass +class D(B, C): pass + +expected = (D, B, A, C) +got = inspect.getmro(D) +test(expected == got, "expected %r mro, got %r", expected, got) + +# The same w/ new-class MRO. +class A(object): pass +class B(A): pass +class C(A): pass +class D(B, C): pass + +expected = (D, B, C, A, object) +got = inspect.getmro(D) +test(expected == got, "expected %r mro, got %r", expected, got) |