def test_gpointer(self): glist = GLib.List() glist.data = 123 self.assertEqual(glist.data, 123) glist.data = None self.assertEqual(glist.data, 0)
def test_struct_gpointer(self): l1 = GLib.List() self.assertEqual(l1.data, None) init_refcount = getrefcount(l1) l1.data = 'foo' self.assertEqual(l1.data, 'foo') l2 = l1 self.assertEqual(l1.data, l2.data) self.assertEqual(getrefcount(l1), init_refcount + 1) l3 = copy.copy(l1) l3.data = 'bar' self.assertEqual(l1.data, 'foo') self.assertEqual(l2.data, 'foo') self.assertEqual(l3.data, 'bar') self.assertEqual(getrefcount(l1), init_refcount + 1) self.assertEqual(getrefcount(l3), init_refcount)
def test_struct_gpointer(self): glist = GLib.List() raw = RawGList.from_wrapped(glist) # Note that pointer fields use 0 for NULL in PyGObject and None in ctypes self.assertEqual(glist.data, 0) self.assertEqual(raw.contents.data, None) glist.data = 123 self.assertEqual(glist.data, 123) self.assertEqual(raw.contents.data, 123) glist.data = None self.assertEqual(glist.data, 0) self.assertEqual(raw.contents.data, None) # Setting to anything other than an int should raise self.assertRaises(TypeError, setattr, glist.data, 'nan') self.assertRaises(TypeError, setattr, glist.data, object()) self.assertRaises(TypeError, setattr, glist.data, 123.321)