diff options
Diffstat (limited to 'tests/functional/n/non/non_init_parent_called.py')
-rw-r--r-- | tests/functional/n/non/non_init_parent_called.py | 51 |
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] |