test_multiple_inheritance.py revision 11986
111986Sandreas.sandberg@arm.com 211986Sandreas.sandberg@arm.com 311986Sandreas.sandberg@arm.comdef test_multiple_inheritance_cpp(): 411986Sandreas.sandberg@arm.com from pybind11_tests import MIType 511986Sandreas.sandberg@arm.com 611986Sandreas.sandberg@arm.com mt = MIType(3, 4) 711986Sandreas.sandberg@arm.com 811986Sandreas.sandberg@arm.com assert mt.foo() == 3 911986Sandreas.sandberg@arm.com assert mt.bar() == 4 1011986Sandreas.sandberg@arm.com 1111986Sandreas.sandberg@arm.com 1211986Sandreas.sandberg@arm.comdef test_multiple_inheritance_mix1(): 1311986Sandreas.sandberg@arm.com from pybind11_tests import Base2 1411986Sandreas.sandberg@arm.com 1511986Sandreas.sandberg@arm.com class Base1: 1611986Sandreas.sandberg@arm.com def __init__(self, i): 1711986Sandreas.sandberg@arm.com self.i = i 1811986Sandreas.sandberg@arm.com 1911986Sandreas.sandberg@arm.com def foo(self): 2011986Sandreas.sandberg@arm.com return self.i 2111986Sandreas.sandberg@arm.com 2211986Sandreas.sandberg@arm.com class MITypePy(Base1, Base2): 2311986Sandreas.sandberg@arm.com def __init__(self, i, j): 2411986Sandreas.sandberg@arm.com Base1.__init__(self, i) 2511986Sandreas.sandberg@arm.com Base2.__init__(self, j) 2611986Sandreas.sandberg@arm.com 2711986Sandreas.sandberg@arm.com mt = MITypePy(3, 4) 2811986Sandreas.sandberg@arm.com 2911986Sandreas.sandberg@arm.com assert mt.foo() == 3 3011986Sandreas.sandberg@arm.com assert mt.bar() == 4 3111986Sandreas.sandberg@arm.com 3211986Sandreas.sandberg@arm.com 3311986Sandreas.sandberg@arm.comdef test_multiple_inheritance_mix2(): 3411986Sandreas.sandberg@arm.com from pybind11_tests import Base1 3511986Sandreas.sandberg@arm.com 3611986Sandreas.sandberg@arm.com class Base2: 3711986Sandreas.sandberg@arm.com def __init__(self, i): 3811986Sandreas.sandberg@arm.com self.i = i 3911986Sandreas.sandberg@arm.com 4011986Sandreas.sandberg@arm.com def bar(self): 4111986Sandreas.sandberg@arm.com return self.i 4211986Sandreas.sandberg@arm.com 4311986Sandreas.sandberg@arm.com class MITypePy(Base1, Base2): 4411986Sandreas.sandberg@arm.com def __init__(self, i, j): 4511986Sandreas.sandberg@arm.com Base1.__init__(self, i) 4611986Sandreas.sandberg@arm.com Base2.__init__(self, j) 4711986Sandreas.sandberg@arm.com 4811986Sandreas.sandberg@arm.com mt = MITypePy(3, 4) 4911986Sandreas.sandberg@arm.com 5011986Sandreas.sandberg@arm.com assert mt.foo() == 3 5111986Sandreas.sandberg@arm.com assert mt.bar() == 4 5211986Sandreas.sandberg@arm.com 5311986Sandreas.sandberg@arm.com 5411986Sandreas.sandberg@arm.comdef test_multiple_inheritance_virtbase(): 5511986Sandreas.sandberg@arm.com from pybind11_tests import Base12a, bar_base2a, bar_base2a_sharedptr 5611986Sandreas.sandberg@arm.com 5711986Sandreas.sandberg@arm.com class MITypePy(Base12a): 5811986Sandreas.sandberg@arm.com def __init__(self, i, j): 5911986Sandreas.sandberg@arm.com Base12a.__init__(self, i, j) 6011986Sandreas.sandberg@arm.com 6111986Sandreas.sandberg@arm.com mt = MITypePy(3, 4) 6211986Sandreas.sandberg@arm.com assert mt.bar() == 4 6311986Sandreas.sandberg@arm.com assert bar_base2a(mt) == 4 6411986Sandreas.sandberg@arm.com assert bar_base2a_sharedptr(mt) == 4 65