def undo(self, tid, note=None): t = TransactionMetaData() if note is not None: t.note(note) oids = self._begin_undos_vote(t, tid) self._storage.tpc_finish(t) return oids
def checkUndoInvalidation(self): oid = self._storage.new_oid() revid = self._dostore(oid, data=MinPO(23)) revid = self._dostore(oid, revid=revid, data=MinPO(24)) revid = self._dostore(oid, revid=revid, data=MinPO(25)) info = self._storage.undoInfo() if not info: # Preserved this comment, but don't understand it: # "Perhaps we have an old storage implementation that # does do the negative nonsense." info = self._storage.undoInfo(0, 20) tid = info[0]['id'] # Now start an undo transaction t = TransactionMetaData() t.note(u'undo1') oids = self._begin_undos_vote(t, tid) # Make sure this doesn't load invalid data into the cache self._storage.load(oid, '') self._storage.tpc_finish(t) [uoid] = oids assert uoid == oid data, revid = self._storage.load(oid, '') obj = zodb_unpickle(data) assert obj == MinPO(24)
def undo(self, tid, note=None): t = TransactionMetaData() if note is not None: t.note(note) oids = self._begin_undos_vote(t, tid) self._storage.tpc_finish(t) return oids
def checkUndoInvalidation(self): oid = self._storage.new_oid() revid = self._dostore(oid, data=MinPO(23)) revid = self._dostore(oid, revid=revid, data=MinPO(24)) revid = self._dostore(oid, revid=revid, data=MinPO(25)) info = self._storage.undoInfo() if not info: # Preserved this comment, but don't understand it: # "Perhaps we have an old storage implementation that # does do the negative nonsense." info = self._storage.undoInfo(0, 20) tid = info[0]['id'] # Now start an undo transaction t = TransactionMetaData() t.note(u'undo1') oids = self._begin_undos_vote(t, tid) # Make sure this doesn't load invalid data into the cache self._storage.load(oid, '') self._storage.tpc_finish(t) [uoid] = oids assert uoid == oid data, revid = self._storage.load(oid, '') obj = zodb_unpickle(data) assert obj == MinPO(24)
def checkNote(self): oid = self._storage.new_oid() t = TransactionMetaData() self._storage.tpc_begin(t) t.note(u'this is a test') self._storage.store(oid, ZERO, zodb_pickle(MinPO(5)), '', t) self._storage.tpc_vote(t) self._storage.tpc_finish(t)
def checkNote(self): oid = self._storage.new_oid() t = TransactionMetaData() self._storage.tpc_begin(t) t.note(u'this is a test') self._storage.store(oid, ZERO, zodb_pickle(MinPO(5)), '', t) self._storage.tpc_vote(t) self._storage.tpc_finish(t)
def _undo(self, tid, expected_oids=None, note=None): # Undo a tid that affects a single object (oid). # This is very specialized. t = TransactionMetaData() t.note(note or u"undo") self._storage.tpc_begin(t) undo_result = self._storage.undo(tid, t) vote_result = self._storage.tpc_vote(t) if expected_oids is not None: oids = set(undo_result[1]) if undo_result else set() if vote_result: oids.update(vote_result) self.assertEqual(oids, set(expected_oids)) return self._storage.tpc_finish(t)
def _undo(self, tid, expected_oids=None, note=None): # Undo a tid that affects a single object (oid). # This is very specialized. t = TransactionMetaData() t.note(note or u"undo") self._storage.tpc_begin(t) undo_result = self._storage.undo(tid, t) vote_result = self._storage.tpc_vote(t) if expected_oids is not None: oids = set(undo_result[1]) if undo_result else set() if vote_result: oids.update(vote_result) self.assertEqual(oids, set(expected_oids)) return self._storage.tpc_finish(t)