diff options
| author | Paul Sokolovsky | 2014-05-18 20:42:28 +0300 |
|---|---|---|
| committer | Paul Sokolovsky | 2014-05-19 21:56:07 +0300 |
| commit | 66ab571ccabb36250b810ee3a6d1e962b9412914 (patch) | |
| tree | 8693650b850f9a097565976f867b5f885c179301 | |
| parent | 13684fd60b3f75956564fd09711cb93dcb6648fd (diff) | |
tests: Update subclass-native2.py for __new__/__init__ refactor.
Now case of subclassing tuple works, and list is broken, see comments.
| -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 000000000..9ad0b77ef --- /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 000000000..9eb69e157 --- /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 749bf969c..000000000 --- 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)) |
