pybind11/tests/test_unique_ptr_member.py

39 lines
909 B
Python

# -*- coding: utf-8 -*-
import pytest
from pybind11_tests import unique_ptr_member as m
def test_make_unique_pointee():
m.to_cout("")
obj = m.make_unique_pointee()
assert obj.get_int() == 213
m.to_cout("")
def test_pointee_and_ptr_owner():
m.to_cout("")
obj = m.pointee()
assert obj.get_int() == 213
owner = m.ptr_owner(obj)
with pytest.raises(RuntimeError) as exc_info:
obj.get_int()
assert str(exc_info.value) == "Invalid object instance"
assert owner.is_owner()
m.to_cout("before give up")
reclaimed = owner.give_up_ownership_via_shared_ptr()
m.to_cout("after give up")
assert not owner.is_owner()
# assert reclaimed.get_int() == 213
del reclaimed
m.to_cout("after del")
m.to_cout("3")
m.to_cout("")
def test_cpp_pattern():
m.to_cout("")
res = m.cpp_pattern()
assert res == 111111
m.to_cout("")