2 from pybind11_tests
import call_policies
as m
3 from pybind11_tests
import ConstructorStats
7 n_inst = ConstructorStats.detail_reg_inst()
10 assert capture ==
"Allocating parent." 13 assert ConstructorStats.detail_reg_inst() == n_inst + 1
20 assert ConstructorStats.detail_reg_inst() == n_inst
21 assert capture ==
"Releasing parent." 25 assert capture ==
"Allocating parent." 27 p.addChildKeepAlive(m.Child())
28 assert ConstructorStats.detail_reg_inst() == n_inst + 2
29 assert capture ==
"Allocating child." 32 assert ConstructorStats.detail_reg_inst() == n_inst
40 n_inst = ConstructorStats.detail_reg_inst()
43 assert capture ==
"Allocating parent." 46 assert ConstructorStats.detail_reg_inst() == n_inst + 1
53 assert ConstructorStats.detail_reg_inst() == n_inst
54 assert capture ==
"Releasing parent." 58 assert capture ==
"Allocating parent." 60 p.returnChildKeepAlive()
61 assert ConstructorStats.detail_reg_inst() == n_inst + 2
62 assert capture ==
"Allocating child." 65 assert ConstructorStats.detail_reg_inst() == n_inst
73 @pytest.unsupported_on_pypy
75 n_inst = ConstructorStats.detail_reg_inst()
77 p.addChildKeepAlive(m.Child())
78 assert ConstructorStats.detail_reg_inst() == n_inst + 2
83 assert ConstructorStats.detail_reg_inst() == n_inst
91 class Derived(m.Parent):
94 n_inst = ConstructorStats.detail_reg_inst()
96 p.addChildKeepAlive(m.Child())
97 assert ConstructorStats.detail_reg_inst() == n_inst + 2
102 assert ConstructorStats.detail_reg_inst() == n_inst
103 assert capture ==
""" 110 class Derived(m.Parent, m.Child):
112 m.Parent.__init__(self)
113 m.Child.__init__(self)
115 n_inst = ConstructorStats.detail_reg_inst()
117 p.addChildKeepAlive(m.Child())
119 assert ConstructorStats.detail_reg_inst() == n_inst + 3
124 assert ConstructorStats.detail_reg_inst() == n_inst
125 assert capture ==
""" 133 n_inst = ConstructorStats.detail_reg_inst()
136 assert capture ==
"Allocating parent." 138 p.returnNullChildKeepAliveChild()
139 assert ConstructorStats.detail_reg_inst() == n_inst + 1
143 assert ConstructorStats.detail_reg_inst() == n_inst
144 assert capture ==
"Releasing parent." 148 assert capture ==
"Allocating parent." 150 p.returnNullChildKeepAliveParent()
151 assert ConstructorStats.detail_reg_inst() == n_inst + 1
155 assert ConstructorStats.detail_reg_inst() == n_inst
156 assert capture ==
"Releasing parent." 160 n_inst = ConstructorStats.detail_reg_inst()
163 p = m.Parent(m.Child())
164 assert ConstructorStats.detail_reg_inst() == n_inst + 2
165 assert capture ==
""" 171 assert ConstructorStats.detail_reg_inst() == n_inst
172 assert capture ==
""" 179 assert m.unguarded_call() ==
"unguarded" 180 assert m.guarded_call() ==
"guarded" 182 assert m.multiple_guards_correct_order() ==
"guarded & guarded" 183 assert m.multiple_guards_wrong_order() ==
"unguarded & guarded" 186 assert m.with_gil() ==
"GIL held" 187 assert m.without_gil() ==
"GIL released" def test_keep_alive_constructor(capture)
def test_alive_gc_multi_derived(capture)
def test_keep_alive_return_value(capture)
def test_return_none(capture)
def test_alive_gc(capture)
def test_keep_alive_argument(capture)
def test_alive_gc_derived(capture)
bool hasattr(handle obj, handle name)