summaryrefslogtreecommitdiff
path: root/tests/functional/n/non/non_init_parent_called.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/n/non/non_init_parent_called.py')
-rw-r--r--tests/functional/n/non/non_init_parent_called.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/functional/n/non/non_init_parent_called.py b/tests/functional/n/non/non_init_parent_called.py
new file mode 100644
index 000000000..d330ac11e
--- /dev/null
+++ b/tests/functional/n/non/non_init_parent_called.py
@@ -0,0 +1,51 @@
+# pylint: disable=W0212,W0406 # [use-symbolic-message-instead,use-symbolic-message-instead]
+# pylint: disable=no-absolute-import,wrong-import-order, useless-object-inheritance,too-few-public-methods,line-too-long
+"""test for call to __init__ from a non ancestor class
+"""
+from __future__ import print_function
+from . import non_init_parent_called
+import nonexistant # [import-error]
+__revision__ = '$Id: non_init_parent_called.py,v 1.2 2004-09-29 08:35:13 syt Exp $'
+
+class AAAA(object):
+ """ancestor 1"""
+
+ def __init__(self):
+ print('init', self)
+ BBBBMixin.__init__(self) # [non-parent-init-called]
+
+class BBBBMixin(object):
+ """ancestor 2"""
+
+ def __init__(self):
+ print('init', self)
+
+class CCC(BBBBMixin, non_init_parent_called.AAAA, non_init_parent_called.BBBB, nonexistant.AClass): # [no-member]
+ """mix different things, some inferable some not"""
+ def __init__(self):
+ BBBBMixin.__init__(self)
+ non_init_parent_called.AAAA.__init__(self)
+ non_init_parent_called.BBBB.__init__(self) # [no-member]
+ nonexistant.AClass.__init__(self)
+
+class DDDD(AAAA):
+ """call superclass constructor in disjunct branches"""
+ def __init__(self, value):
+ if value:
+ AAAA.__init__(self)
+ else:
+ AAAA.__init__(self)
+
+class Super(dict):
+ """ test late binding super() call """
+ def __init__(self):
+ base = super()
+ base.__init__()
+
+class Super2(dict):
+ """ Using the same idiom as Super, but without calling
+ the __init__ method.
+ """
+ def __init__(self): # [super-init-not-called]
+ base = super()
+ base.__woohoo__() # [no-member]