def test(self): u = IntIds() obj = P() obj._p_jar = ConnectionStub() self.assertRaises(KeyError, u.getId, obj) self.assertRaises(KeyError, u.getId, P()) self.assert_(u.queryId(obj) is None) self.assert_(u.queryId(obj, 42) is 42) self.assert_(u.queryId(P(), 42) is 42) self.assert_(u.queryObject(42) is None) self.assert_(u.queryObject(42, obj) is obj) uid = u.register(obj) self.assert_(u.getObject(uid) is obj) self.assert_(u.queryObject(uid) is obj) self.assertEquals(u.getId(obj), uid) self.assertEquals(u.queryId(obj), uid) uid2 = u.register(obj) self.assertEquals(uid, uid2) u.unregister(obj) self.assertRaises(KeyError, u.getObject, uid) self.assertRaises(KeyError, u.getId, obj)
def test_non_keyreferences(self): u = IntIds() obj = object() self.assert_(u.queryId(obj) is None) self.assert_(u.unregister(obj) is None) self.assertRaises(KeyError, u.getId, obj)
def test_len_items(self): u = IntIds() obj = P() obj._p_jar = ConnectionStub() self.assertEquals(len(u), 0) self.assertEquals(u.items(), []) self.assertEquals(list(u), []) uid = u.register(obj) ref = KeyReferenceToPersistent(obj) self.assertEquals(len(u), 1) self.assertEquals(u.items(), [(uid, ref)]) self.assertEquals(list(u), [uid]) obj2 = P() obj2.__parent__ = obj uid2 = u.register(obj2) ref2 = KeyReferenceToPersistent(obj2) self.assertEquals(len(u), 2) result = u.items() expected = [(uid, ref), (uid2, ref2)] result.sort() expected.sort() self.assertEquals(result, expected) result = list(u) expected = [uid, uid2] result.sort() expected.sort() self.assertEquals(result, expected) u.unregister(obj) u.unregister(obj2) self.assertEquals(len(u), 0) self.assertEquals(u.items(), [])