diff options
author | Josh Lloyd <j.nevercast@gmail.com> | 2019-09-24 17:01:54 +1200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2019-10-18 15:20:56 +1100 |
commit | 8f9e2e325ab0d0dfa9457779010a4cb2cfe60fef (patch) | |
tree | 08d4fcea0a6c9c124d50a93013f40cf876e7aa02 /tests/basics/class_bases.py | |
parent | 59c1b7d4b8fb1d441f9322976582c8709f01dfbe (diff) |
py/objtype: Add type.__bases__ attribute.
Enabled as part of MICROPY_CPYTHON_COMPAT.
Diffstat (limited to 'tests/basics/class_bases.py')
-rw-r--r-- | tests/basics/class_bases.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/basics/class_bases.py b/tests/basics/class_bases.py new file mode 100644 index 000000000..d3cf4f598 --- /dev/null +++ b/tests/basics/class_bases.py @@ -0,0 +1,45 @@ +# test for type.__bases__ implementation + +if not hasattr(object, '__bases__'): + print("SKIP") + raise SystemExit + +class A: + pass + +class B(object): + pass + +class C(B): + pass + +class D(C, A): + pass + +# Check the attribute exists +print(hasattr(A, '__bases__')) +print(hasattr(B, '__bases__')) +print(hasattr(C, '__bases__')) +print(hasattr(D, '__bases__')) + +# Check it is always a tuple +print(type(A.__bases__) == tuple) +print(type(B.__bases__) == tuple) +print(type(C.__bases__) == tuple) +print(type(D.__bases__) == tuple) + +# Check size +print(len(A.__bases__) == 1) +print(len(B.__bases__) == 1) +print(len(C.__bases__) == 1) +print(len(D.__bases__) == 2) + +# Check values +print(A.__bases__[0] == object) +print(B.__bases__[0] == object) +print(C.__bases__[0] == B) +print(D.__bases__[0] == C) +print(D.__bases__[1] == A) + +# Object has an empty tuple +print(object.__bases__ == tuple()) |