summaryrefslogtreecommitdiff
path: root/tests/basics/class_bases.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/class_bases.py')
-rw-r--r--tests/basics/class_bases.py45
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())