3 from pybind11_tests
import opaque_types
as m
4 from pybind11_tests
import ConstructorStats, UserType
9 lst.push_back(
"Element 1")
10 lst.push_back(
"Element 2")
11 assert m.print_opaque_list(lst) ==
"Opaque list: [Element 1, Element 2]"
12 assert lst.back() ==
"Element 2"
14 for i, k
in enumerate(lst, start=1):
15 assert k ==
"Element {}".format(i)
17 assert m.print_opaque_list(lst) ==
"Opaque list: [Element 1]"
19 cvp = m.ClassWithSTLVecProperty()
20 assert m.print_opaque_list(cvp.stringList) ==
"Opaque list: []"
23 cvp.stringList.push_back(
"Element 3")
24 assert m.print_opaque_list(cvp.stringList) ==
"Opaque list: [Element 1, Element 3]"
29 assert m.get_void_ptr_value(m.return_void_ptr()) == 0x1234
30 assert m.get_void_ptr_value(UserType())
33 with pytest.raises(TypeError)
as excinfo:
34 m.get_void_ptr_value([1, 2, 3])
38 get_void_ptr_value(): incompatible function arguments. The following argument types are supported:
39 1. (arg0: capsule) -> int
41 Invoked with: [1, 2, 3]
45 assert m.return_null_str()
is None
46 assert m.get_null_str_value(m.return_null_str())
is not None
48 ptr = m.return_unique_ptr()
49 assert "StringList" in repr(ptr)
50 assert m.print_opaque_list(ptr) ==
"Opaque list: [some value]"
54 int_float_union = m.IntFloat()
55 int_float_union.i = 42
56 assert int_float_union.i == 42
57 int_float_union.f = 3.0
58 assert int_float_union.f == 3.0