tests: Update subclass-native2.py for __new__/__init__ refactor.
Now case of subclassing tuple works, and list is broken, see comments.
This commit is contained in:
parent
13684fd60b
commit
66ab571cca
26
tests/basics/subclass-native2-list.py
Normal file
26
tests/basics/subclass-native2-list.py
Normal file
@ -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))
|
21
tests/basics/subclass-native2-tuple.py
Normal file
21
tests/basics/subclass-native2-tuple.py
Normal file
@ -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))
|
@ -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))
|
Loading…
x
Reference in New Issue
Block a user