Skip to content

Commit

Permalink
Convert load calls to load_current
Browse files Browse the repository at this point in the history
  • Loading branch information
Jim Fulton committed Jun 17, 2016
1 parent 1e78342 commit 0278f36
Show file tree
Hide file tree
Showing 20 changed files with 103 additions and 89 deletions.
13 changes: 2 additions & 11 deletions src/ZODB/BaseStorage.py
Expand Up @@ -28,7 +28,7 @@

import ZODB.interfaces
from . import POSException, utils
from .utils import z64, oid_repr, byte_ord, byte_chr
from .utils import z64, oid_repr, byte_ord, byte_chr, load_current
from .UndoLogCompatible import UndoLogCompatible
from ._compat import dumps, _protocol, py2_hasattr

Expand Down Expand Up @@ -275,16 +275,7 @@ def lastTransaction(self):
def getTid(self, oid):
self._lock_acquire()
try:
v = ''
try:
supportsVersions = self.supportsVersions
except AttributeError:
pass
else:
if supportsVersions():
v = self.modifiedInVersion(oid)
pickledata, serial = self.load(oid, v)
return serial
return load_current(self, oid)[1]
finally:
self._lock_release()

Expand Down
3 changes: 2 additions & 1 deletion src/ZODB/FileStorage/tests.py
Expand Up @@ -119,7 +119,8 @@ def pack_with_repeated_blob_records():
>>> transaction.commit()
>>> tm = transaction.TransactionManager()
>>> oid = conn.root()[1]._p_oid
>>> blob_record, oldserial = fs.load(oid)
>>> from ZODB.utils import load_current
>>> blob_record, oldserial = load_current(fs, oid)
Now, create a transaction with multiple saves:
Expand Down
2 changes: 1 addition & 1 deletion src/ZODB/blob.py
Expand Up @@ -796,7 +796,7 @@ def _packNonUndoing(self, packtime, referencesf):
for oid, oid_path in self.fshelper.listOIDs():
exists = True
try:
self.load(oid, None) # no version support
utils.load_current(self, oid) # no version support
except (POSKeyError, KeyError):
exists = False

Expand Down
6 changes: 3 additions & 3 deletions src/ZODB/scripts/fsrefs.py
Expand Up @@ -66,7 +66,7 @@

from ZODB.FileStorage import FileStorage
from ZODB.TimeStamp import TimeStamp
from ZODB.utils import u64, oid_repr, get_pickle_metadata
from ZODB.utils import u64, oid_repr, get_pickle_metadata, load_current
from ZODB.serialize import get_refs
from ZODB.POSException import POSKeyError

Expand Down Expand Up @@ -120,7 +120,7 @@ def main(path=None):

for oid in fs._index.keys():
try:
data, serial = fs.load(oid, "")
data, serial = load_current(fs, oid)
except (KeyboardInterrupt, SystemExit):
raise
except POSKeyError:
Expand All @@ -135,7 +135,7 @@ def main(path=None):
for oid in fs._index.keys():
if oid in inactive:
continue
data, serial = fs.load(oid, "")
data, serial = load_current(fs, oid)
refs = get_refs(data)
missing = [] # contains 3-tuples of oid, klass-metadata, reason
for ref, klass in refs:
Expand Down
6 changes: 3 additions & 3 deletions src/ZODB/scripts/netspace.py
Expand Up @@ -9,7 +9,7 @@
from __future__ import print_function
import ZODB
from ZODB.FileStorage import FileStorage
from ZODB.utils import U64, get_pickle_metadata
from ZODB.utils import U64, get_pickle_metadata, load_current
from ZODB.serialize import referencesf
from six.moves import filter

Expand Down Expand Up @@ -64,7 +64,7 @@ def _total_size(oid, seen):
v = cache.get(oid)
if v is not None:
return v
data, serialno = fs.load(oid, '')
data, serialno = load_current(fs, oid)
size = len(data)
for suboid in referencesf(data):
if suboid in seen:
Expand All @@ -89,7 +89,7 @@ def _total_size(oid, seen):
fmt = "%8s %5d %8d %s %s.%s"

for oid in keys:
data, serialno = fs.load(oid, '')
data, serialno = load_current(fs, oid)
mod, klass = get_pickle_metadata(data)
refs = referencesf(data)
path = paths.get(oid, '-')
Expand Down
4 changes: 2 additions & 2 deletions src/ZODB/scripts/space.py
Expand Up @@ -9,7 +9,7 @@
"""
from __future__ import print_function
from ZODB.FileStorage import FileStorage
from ZODB.utils import U64, get_pickle_metadata
from ZODB.utils import U64, get_pickle_metadata, load_current
import six

def run(path, v=0):
Expand All @@ -21,7 +21,7 @@ def run(path, v=0):
iter = fs._index.keys()
totals = {}
for oid in iter:
data, serialno = fs.load(oid, '')
data, serialno = load_current(fs, oid)
mod, klass = get_pickle_metadata(data)
key = "%s.%s" % (mod, klass)
bytes, count = totals.get(key, (0, 0))
Expand Down
24 changes: 13 additions & 11 deletions src/ZODB/tests/BasicStorage.py
Expand Up @@ -73,7 +73,7 @@ def checkSerialIsNoneForInitialRevision(self):
r2 = self._storage.tpc_vote(txn)
self._storage.tpc_finish(txn)
newrevid = handle_serials(oid, r1, r2)
data, revid = self._storage.load(oid, '')
data, revid = utils.load_current(self._storage, oid)
value = zodb_unpickle(data)
eq(value, MinPO(11))
eq(revid, newrevid)
Expand All @@ -88,14 +88,14 @@ def checkStoreAndLoad(self):
eq = self.assertEqual
oid = self._storage.new_oid()
self._dostore(oid=oid, data=MinPO(7))
data, revid = self._storage.load(oid, '')
data, revid = utils.load_current(self._storage, oid)
value = zodb_unpickle(data)
eq(value, MinPO(7))
# Now do a bunch of updates to an object
for i in range(13, 22):
revid = self._dostore(oid, revid=revid, data=MinPO(i))
# Now get the latest revision of the object
data, revid = self._storage.load(oid, '')
data, revid = utils.load_current(self._storage, oid)
eq(zodb_unpickle(data), MinPO(21))

def checkConflicts(self):
Expand Down Expand Up @@ -132,7 +132,7 @@ def checkAbortAfterVote(self):
revid = self._dostore(oid=oid, data=MinPO(6))

for oid, revid in [(oid1, revid1), (oid, revid)]:
data, _revid = self._storage.load(oid, '')
data, _revid = utils.load_current(self._storage, oid)
self.assertEqual(revid, _revid)

def checkStoreTwoObjects(self):
Expand Down Expand Up @@ -270,8 +270,10 @@ def check_checkCurrentSerialInTransaction(self):
self._storage.tpc_finish(t)
thread.join(33)

tid3 = self._storage.load(oid)[1]
self.assertTrue(tid3 > self._storage.load(b'\0\0\0\0\0\0\0\xf3')[1])
tid3 = utils.load_current(self._storage, oid)[1]
self.assertTrue(tid3 >
utils.load_current(
self._storage, b'\0\0\0\0\0\0\0\xf3')[1])

#----------------------------------------------------------------------
# non-stale competing trans after checkCurrentSerialInTransaction
Expand All @@ -296,9 +298,10 @@ def check_checkCurrentSerialInTransaction(self):
else:
self._storage.tpc_finish(t)
thread.join()
tid4 = self._storage.load(oid)[1]
self.assertTrue(tid4 >
self._storage.load(b'\0\0\0\0\0\0\0\xf4')[1])
tid4 = utils.load_current(self._storage, oid)[1]
self.assertTrue(
tid4 >
utils.load_current(self._storage, b'\0\0\0\0\0\0\0\xf4')[1])


def check_tid_ordering_w_commit(self):
Expand Down Expand Up @@ -363,7 +366,7 @@ def lastTransaction():
@run_in_thread
def load():
update_attempts()
results['load'] = self._storage.load(ZERO, '')[1]
results['load'] = utils.load_current(self._storage, ZERO)[1]

expected_attempts = 2

Expand Down Expand Up @@ -397,4 +400,3 @@ def lastInvalidations():
self.assertEqual(results.pop('lastTransaction'), tids[1])
for m, tid in results.items():
self.assertEqual(tid, tids[1])

4 changes: 3 additions & 1 deletion src/ZODB/tests/ConflictResolution.py
Expand Up @@ -17,6 +17,8 @@
from persistent import Persistent
from transaction import Transaction

from ZODB.utils import load_current

from ZODB.tests.StorageTestBase import zodb_unpickle, zodb_pickle

class PCounter(Persistent):
Expand Down Expand Up @@ -71,7 +73,7 @@ def checkResolve(self):
revid2 = self._dostoreNP(oid, revid=revid1, data=zodb_pickle(obj))
revid3 = self._dostoreNP(oid, revid=revid1, data=zodb_pickle(obj))

data, serialno = self._storage.load(oid, '')
data, serialno = load_current(self._storage, oid)
inst = zodb_unpickle(data)
self.assertEqual(inst._value, 5)

Expand Down
5 changes: 4 additions & 1 deletion src/ZODB/tests/Corruption.py
Expand Up @@ -18,6 +18,9 @@
import stat

import ZODB.FileStorage

from ZODB.utils import load_current

from .StorageTestBase import StorageTestBase

class FileStorageCorruptTests(StorageTestBase):
Expand All @@ -36,7 +39,7 @@ def _do_stores(self):

def _check_stores(self, oids):
for oid, revid in oids:
data, s_revid = self._storage.load(oid, '')
data, s_revid = load_current(self._storage, oid)
self.assertEqual(s_revid, revid)

def checkTruncatedIndex(self):
Expand Down
4 changes: 2 additions & 2 deletions src/ZODB/tests/IteratorStorage.py
Expand Up @@ -20,7 +20,7 @@

from ZODB.tests.MinPO import MinPO
from ZODB.tests.StorageTestBase import zodb_pickle, zodb_unpickle
from ZODB.utils import U64, p64
from ZODB.utils import U64, p64, load_current

from transaction import Transaction

Expand Down Expand Up @@ -122,7 +122,7 @@ def checkIterationIntraTransaction(self):
def checkLoad_was_checkLoadEx(self):
oid = self._storage.new_oid()
self._dostore(oid, data=42)
data, tid = self._storage.load(oid, "")
data, tid = load_current(self._storage, oid)
self.assertEqual(zodb_unpickle(data), MinPO(42))
match = False
for txn in self._storage.iterator():
Expand Down
6 changes: 4 additions & 2 deletions src/ZODB/tests/MTStorage.py
Expand Up @@ -13,6 +13,8 @@
from ZODB.tests.MinPO import MinPO
from ZODB.POSException import ConflictError

from ZODB.utils import load_current

SHORT_DELAY = 0.01

class TestThread(threading.Thread):
Expand Down Expand Up @@ -124,7 +126,7 @@ def runtest(self):

def check(self):
for oid, revid in self.oids.items():
data, serial = self.storage.load(oid, '')
data, serial = load_current(self.storage, oid)
self.test.assertEqual(serial, revid)
obj = zodb_unpickle(data)
self.test.assertEqual(obj.value[0], self.getName())
Expand Down Expand Up @@ -192,7 +194,7 @@ def pick_oid(self):

def do_load(self):
oid = self.pick_oid()
self.storage.load(oid, '')
load_current(self.storage, oid)

def do_loadSerial(self):
oid = self.pick_oid()
Expand Down
19 changes: 10 additions & 9 deletions src/ZODB/tests/PackableStorage.py
Expand Up @@ -32,6 +32,7 @@
import ZODB.tests.util
import zope.testing.setupstack

from ZODB.utils import load_current

ZERO = b'\0'*8

Expand Down Expand Up @@ -141,7 +142,7 @@ def loads(str, persfunc=self._cache.get):

def _initroot(self):
try:
self._storage.load(ZERO, '')
load_current(self._storage, ZERO)
except KeyError:
from transaction import Transaction
file = BytesIO()
Expand Down Expand Up @@ -393,7 +394,7 @@ def checkPackJustOldRevisions(self):
root.value = 0
revid0 = self._dostoreNP(ZERO, data=dumps(root))
# Make sure the root can be retrieved
data, revid = self._storage.load(ZERO, '')
data, revid = load_current(self._storage, ZERO)
eq(revid, revid0)
eq(loads(data).value, 0)
# Commit three different revisions of the other object
Expand Down Expand Up @@ -424,7 +425,7 @@ def checkPackJustOldRevisions(self):
self._storage.pack(packtime, referencesf)
# Make sure the revisions are gone, but that object zero and revision
# 3 are still there and correct
data, revid = self._storage.load(ZERO, '')
data, revid = load_current(self._storage, ZERO)
eq(revid, revid0)
eq(loads(data).value, 0)
raises(KeyError, self._storage.loadSerial, oid, revid1)
Expand All @@ -433,7 +434,7 @@ def checkPackJustOldRevisions(self):
pobj = loads(data)
eq(pobj.getoid(), oid)
eq(pobj.value, 3)
data, revid = self._storage.load(oid, '')
data, revid = load_current(self._storage, oid)
eq(revid, revid3)
pobj = loads(data)
eq(pobj.getoid(), oid)
Expand Down Expand Up @@ -461,7 +462,7 @@ def checkPackOnlyOneObject(self):
root.value = 0
revid0 = self._dostoreNP(ZERO, data=dumps(root))
# Make sure the root can be retrieved
data, revid = self._storage.load(ZERO, '')
data, revid = load_current(self._storage, ZERO)
eq(revid, revid0)
eq(loads(data).value, 0)
# Commit three different revisions of the first object
Expand Down Expand Up @@ -501,7 +502,7 @@ def checkPackOnlyOneObject(self):
self._storage.pack(packtime, referencesf)
# Make sure the revisions are gone, but that object zero, object2, and
# revision 3 of object1 are still there and correct.
data, revid = self._storage.load(ZERO, '')
data, revid = load_current(self._storage, ZERO)
eq(revid, revid0)
eq(loads(data).value, 0)
raises(KeyError, self._storage.loadSerial, oid1, revid1)
Expand All @@ -510,12 +511,12 @@ def checkPackOnlyOneObject(self):
pobj = loads(data)
eq(pobj.getoid(), oid1)
eq(pobj.value, 3)
data, revid = self._storage.load(oid1, '')
data, revid = load_current(self._storage, oid1)
eq(revid, revid3)
pobj = loads(data)
eq(pobj.getoid(), oid1)
eq(pobj.value, 3)
data, revid = self._storage.load(oid2, '')
data, revid = load_current(self._storage, oid2)
eq(revid, revid4)
eq(loads(data).value, 11)
data = self._storage.loadSerial(oid2, revid4)
Expand Down Expand Up @@ -649,7 +650,7 @@ def checkRedundantPack(self):
pass
# This object would be removed by the second pack, even though
# it is reachable.
self._storage.load(lost_oid, "")
load_current(self._storage, lost_oid)

def checkPackUndoLog(self):
self._initroot()
Expand Down
6 changes: 4 additions & 2 deletions src/ZODB/tests/PersistentStorage.py
Expand Up @@ -13,6 +13,8 @@
##############################################################################
"""Test that a storage's values persist across open and close."""

from ZODB.utils import load_current

class PersistentStorage:

def checkUpdatesPersist(self):
Expand All @@ -36,14 +38,14 @@ def new_oid_wrapper(l=oids, new_oid=self._storage.new_oid):
# keep copies of all the objects
objects = []
for oid in oids:
p, s = self._storage.load(oid, '')
p, s = load_current(self._storage, oid)
objects.append((oid, '', p, s))

self._storage.close()
self.open()

# keep copies of all the objects
for oid, ver, p, s in objects:
_p, _s = self._storage.load(oid, ver)
_p, _s = load_current(self._storage, oid)
self.assertEqual(p, _p)
self.assertEqual(s, _s)

0 comments on commit 0278f36

Please sign in to comment.