Rev 3365: Update the insert_record_stream contract to error if an absent record is provided. in http://people.ubuntu.com/~robertc/baz2.0/versioned_files
Robert Collins
robertc at robertcollins.net
Wed Apr 30 00:08:45 BST 2008
At http://people.ubuntu.com/~robertc/baz2.0/versioned_files
------------------------------------------------------------
revno: 3365
revision-id: robertc at robertcollins.net-20080429230836-s6m93kss4mcbtc2t
parent: robertc at robertcollins.net-20080429052708-ep87a2mxn2d7i8lr
committer: Robert Collins <robertc at robertcollins.net>
branch nick: data_stream_revamp
timestamp: Wed 2008-04-30 09:08:36 +1000
message:
Update the insert_record_stream contract to error if an absent record is provided.
modified:
bzrlib/knit.py knit.py-20051212171256-f056ac8f0fbe1bd9
bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
bzrlib/weave.py knit.py-20050627021749-759c29984154256b
=== modified file 'bzrlib/knit.py'
--- a/bzrlib/knit.py 2008-04-29 00:10:45 +0000
+++ b/bzrlib/knit.py 2008-04-29 23:08:36 +0000
@@ -1109,6 +1109,9 @@
knit_types = native_types.union(convertibles)
adapters = {}
for record in stream:
+ # Raise an error when a record is missing.
+ if record.storage_kind == 'absent':
+ raise RevisionNotPresent([record.key[0]], self)
# adapt to non-tuple interface
parents = [parent[0] for parent in record.parents]
if record.storage_kind in knit_types:
=== modified file 'bzrlib/tests/test_versionedfile.py'
--- a/bzrlib/tests/test_versionedfile.py 2008-04-29 05:27:08 +0000
+++ b/bzrlib/tests/test_versionedfile.py 2008-04-29 23:08:36 +0000
@@ -330,6 +330,16 @@
f.insert_record_stream(stream)
self.assertIdenticalVersionedFile(f, source)
+ def test_insert_record_stream_missing_keys(self):
+ """Inserting a stream with absent keys should raise an error."""
+ f = self.get_file()
+ source = make_file_knit('source', get_transport(self.get_url('.')),
+ create=True, factory=KnitPlainFactory())
+ stream = source.get_record_stream(['missing'], 'topological',
+ False)
+ self.assertRaises(errors.RevisionNotPresent, f.insert_record_stream,
+ stream)
+
def test_adds_with_parent_texts(self):
f = self.get_file()
parent_texts = {}
=== modified file 'bzrlib/weave.py'
--- a/bzrlib/weave.py 2008-04-24 07:28:18 +0000
+++ b/bzrlib/weave.py 2008-04-29 23:08:36 +0000
@@ -338,6 +338,9 @@
"""
adapters = {}
for record in stream:
+ # Raise an error when a record is missing.
+ if record.storage_kind == 'absent':
+ raise RevisionNotPresent([record.key[0]], self)
# adapt to non-tuple interface
parents = [parent[0] for parent in record.parents]
if record.storage_kind == 'fulltext':
More information about the bazaar-commits
mailing list