MCPcopy Create free account
hub / github.com/pybind/pybind11 / test_optional

Function test_optional

tests/test_stl.py:137–165  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

135
136@pytest.mark.skipif(not hasattr(m, "has_optional"), reason="no <optional>")
137def test_optional():
138 assert m.double_or_zero(None) == 0
139 assert m.double_or_zero(42) == 84
140 pytest.raises(TypeError, m.double_or_zero, "foo")
141
142 assert m.half_or_none(0) is None
143 assert m.half_or_none(42) == 21
144 pytest.raises(TypeError, m.half_or_none, "foo")
145
146 assert m.test_nullopt() == 42
147 assert m.test_nullopt(None) == 42
148 assert m.test_nullopt(42) == 42
149 assert m.test_nullopt(43) == 43
150
151 assert m.test_no_assign() == 42
152 assert m.test_no_assign(None) == 42
153 assert m.test_no_assign(m.NoAssign(43)) == 43
154 pytest.raises(TypeError, m.test_no_assign, 43)
155
156 assert m.nodefer_none_optional(None)
157
158 holder = m.OptionalHolder()
159 mvalue = holder.member
160 assert mvalue.initialized
161 assert holder.member_initialized()
162
163 props = m.OptionalProperties()
164 assert int(props.access_by_ref) == 42
165 assert int(props.access_by_copy) == 42
166
167
168@pytest.mark.skipif(

Callers

nothing calls this directly

Calls 4

member_initializedMethod · 0.95
NoAssignMethod · 0.80
OptionalHolderMethod · 0.80
OptionalPropertiesMethod · 0.80

Tested by

no test coverage detected