diff options
-rw-r--r-- | tests/basics/subclass-native2-list.py | 26 | ||||
-rw-r--r-- | tests/basics/subclass-native2-tuple.py | 21 | ||||
-rw-r--r-- | tests/basics/subclass-native2.py | 37 |
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)) |