Skip to content

Commit

Permalink
Merge pull request #86 from NextThought/handle-serials4
Browse files Browse the repository at this point in the history
Fix handle_all_serials for the new and old protocols.
  • Loading branch information
jimfulton committed Jul 12, 2016
2 parents 45831d6 + c13649d commit e080bdc
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions src/ZODB/tests/StorageTestBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,18 +113,28 @@ def handle_all_serials(oid, *args):
The original interface just returned the serialno for the
object.
The updated multi-commit API returns nothing from store(), and
returns a sequence of resolved oids from tpc_vote.
NOTE: This function is removed entirely in ZODB 5.
"""
d = {}
for arg in args:
if isinstance(arg, bytes):
d[oid] = arg
elif arg is None:
pass
else:
for oid, serial in arg:
if not isinstance(serial, bytes):
raise serial # error from ZEO server
d[oid] = serial
elif arg:
for t in arg:
if isinstance(t, bytes):
# New protocol. The caller will use the tid
# returned from tpc_finish if we return a dict
# missing the oid.
pass
else:
oid, serial = t
if not isinstance(serial, bytes):
raise serial # error from ZEO server
d[oid] = serial
return d

def handle_serials(oid, *args):
Expand Down

0 comments on commit e080bdc

Please sign in to comment.