Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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)