mirror of
https://github.com/pybind/pybind11.git
synced 2026-05-02 04:31:38 +00:00
Equivalent of 5718e4d080
This commit is contained in:
39
tests/test_python_multiple_inheritance.py
Normal file
39
tests/test_python_multiple_inheritance.py
Normal file
@@ -0,0 +1,39 @@
|
||||
# Adapted from:
|
||||
# https://github.com/google/clif/blob/5718e4d0807fd3b6a8187dde140069120b81ecef/clif/testing/python/python_multiple_inheritance_test.py
|
||||
|
||||
from pybind11_tests import python_multiple_inheritance as m
|
||||
|
||||
|
||||
class PC(m.CppBase):
|
||||
pass
|
||||
|
||||
|
||||
class PPCCInit(PC, m.CppDrvd):
|
||||
def __init__(self, value):
|
||||
PC.__init__(self, value)
|
||||
m.CppDrvd.__init__(self, value + 1)
|
||||
|
||||
|
||||
def test_PC():
|
||||
d = PC(11)
|
||||
assert d.get_base_value() == 11
|
||||
d.reset_base_value(13)
|
||||
assert d.get_base_value() == 13
|
||||
|
||||
|
||||
def test_PPCCInit():
|
||||
d = PPCCInit(11)
|
||||
assert d.get_drvd_value() == 36
|
||||
d.reset_drvd_value(55)
|
||||
assert d.get_drvd_value() == 55
|
||||
|
||||
# CppBase is initialized and used when CppBase methods are called, but
|
||||
# CppDrvd is used when CppDrvd methods are called.
|
||||
assert d.get_base_value() == 11
|
||||
assert d.get_base_value_from_drvd() == 12
|
||||
d.reset_base_value(20)
|
||||
assert d.get_base_value() == 20
|
||||
assert d.get_base_value_from_drvd() == 12
|
||||
d.reset_base_value_from_drvd(30)
|
||||
assert d.get_base_value() == 20
|
||||
assert d.get_base_value_from_drvd() == 30
|
||||
Reference in New Issue
Block a user