def test_refcounting(self): obj = foo.SomeObject("") z = foo.Zbr("hello") obj.set_zbr_transfer(z) self.assertEqual(z.get_datum(), "hello") z2 = obj.get_zbr() self.assertEqual(z2.get_datum(), "hello") z3 = obj.get_zbr() self.assertEqual(z3.get_datum(), "hello") zz = foo.Zbr("world") self.assertEqual(zz.get_datum(), "world") obj.set_zbr_shared(zz) ## previous z's should not have been changed self.assertEqual(z.get_datum(), "hello") self.assertEqual(z2.get_datum(), "hello") self.assertEqual(z3.get_datum(), "hello") self.assertEqual(zz.get_datum(), "world") zz2 = obj.get_zbr() self.assertEqual(zz2.get_datum(), "world") zz3 = obj.peek_zbr() self.assertEqual(zz3.get_datum(), "world")
def test_out_intptr(self): zbr = foo.Zbr() v1, v2 = zbr.get_value() self.assertEqual(v1, -1) self.assertEqual(v2, 123)