summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--tests/basics/subclass-native2-list.py26
-rw-r--r--tests/basics/subclass-native2-tuple.py21
-rw-r--r--tests/basics/subclass-native2.py37
3 files changed, 47 insertions, 37 deletions
diff --git a/tests/basics/subclass-native2-list.py b/tests/basics/subclass-native2-list.py
new file mode 100644
index 0000000000..9ad0b77ef6
--- /dev/null
+++ b/tests/basics/subclass-native2-list.py
@@ -0,0 +1,26 @@
+class Base1:
+ def __init__(self, *args):
+ print("Base1.__init__", args)
+
+class Clist1(Base1, list):
+ pass
+
+a = Clist1()
+print(len(a))
+# Not compliant - list assignment should happen in list.__init__, which is not called
+# because there's Base1.__init__, but we assign in list.__new__
+#a = Clist1([1, 2, 3])
+#print(len(a))
+
+print("---")
+
+class Clist2(list, Base1):
+ pass
+
+# Not compliant - should call list.__init__, but we don't have it
+#a = Clist2()
+#print(len(a))
+
+# Not compliant - should call list.__init__, but we don't have it
+#a = Clist2([1, 2, 3])
+#print(len(a))
diff --git a/tests/basics/subclass-native2-tuple.py b/tests/basics/subclass-native2-tuple.py
new file mode 100644
index 0000000000..9eb69e1575
--- /dev/null
+++ b/tests/basics/subclass-native2-tuple.py
@@ -0,0 +1,21 @@
+class Base1:
+ def __init__(self, *args):
+ print("Base1.__init__", args)
+
+class Ctuple1(Base1, tuple):
+ pass
+
+a = Ctuple1()
+print(len(a))
+a = Ctuple1([1, 2, 3])
+print(len(a))
+
+print("---")
+
+class Ctuple2(tuple, Base1):
+ pass
+
+a = Ctuple2()
+print(len(a))
+a = Ctuple2([1, 2, 3])
+print(len(a))
diff --git a/tests/basics/subclass-native2.py b/tests/basics/subclass-native2.py
deleted file mode 100644
index 749bf969cf..0000000000
--- a/tests/basics/subclass-native2.py
+++ /dev/null
@@ -1,37 +0,0 @@
-class Base1:
- def __init__(self, *args):
- print("Base1.__init__",args)
-
-class Clist1(Base1, list):
- pass
-
-class Ctuple1(Base1, tuple):
- pass
-
-a = Clist1()
-print(len(a))
-a = Clist1([1, 2, 3])
-print(len(a))
-
-a = Ctuple1()
-print(len(a))
-a = Ctuple1([1, 2, 3])
-# TODO: Faults
-#print(len(a))
-
-print("---")
-
-class Clist2(list, Base1):
- pass
-
-class Ctuple2(tuple, Base1):
- pass
-a = Clist2()
-print(len(a))
-a = Clist2([1, 2, 3])
-print(len(a))
-
-#a = Ctuple2()
-#print(len(a))
-#a = Ctuple2([1, 2, 3])
-#print(len(a))