1 from __future__
import annotations
5 from pybind11_tests
import ConstructorStats, UserType
6 from pybind11_tests
import opaque_types
as m
11 lst.push_back(
"Element 1")
12 lst.push_back(
"Element 2")
13 assert m.print_opaque_list(lst) ==
"Opaque list: [Element 1, Element 2]"
14 assert lst.back() ==
"Element 2"
16 for i, k
in enumerate(lst, start=1):
17 assert k == f
"Element {i}"
19 assert m.print_opaque_list(lst) ==
"Opaque list: [Element 1]"
21 cvp = m.ClassWithSTLVecProperty()
22 assert m.print_opaque_list(cvp.stringList) ==
"Opaque list: []"
25 cvp.stringList.push_back(
"Element 3")
26 assert m.print_opaque_list(cvp.stringList) ==
"Opaque list: [Element 1, Element 3]"
31 assert m.get_void_ptr_value(m.return_void_ptr()) == 0x1234
32 assert m.get_void_ptr_value(UserType())
35 with pytest.raises(TypeError)
as excinfo:
36 m.get_void_ptr_value([1, 2, 3])
40 get_void_ptr_value(): incompatible function arguments. The following argument types are supported:
41 1. (arg0: capsule) -> int
43 Invoked with: [1, 2, 3]
47 assert m.return_null_str()
is None
48 assert m.get_null_str_value(m.return_null_str())
is not None
50 ptr = m.return_unique_ptr()
51 assert "StringList" in repr(ptr)
52 assert m.print_opaque_list(ptr) ==
"Opaque list: [some value]"
56 int_float_union = m.IntFloat()
57 int_float_union.i = 42
58 assert int_float_union.i == 42
59 int_float_union.f = 3.0
60 assert int_float_union.f == 3.0