Rev 2605: Handle mismatched numbers of reference lists. in http://people.ubuntu.com/~robertc/baz2.0/repository
Robert Collins
robertc at robertcollins.net
Fri Jul 13 06:41:58 BST 2007
At http://people.ubuntu.com/~robertc/baz2.0/repository
------------------------------------------------------------
revno: 2605
revision-id: robertc at robertcollins.net-20070713054155-q8h3533j39cc0t7o
parent: robertc at robertcollins.net-20070712164954-gtnnmqd5oyfob20t
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository
timestamp: Fri 2007-07-13 15:41:55 +1000
message:
Handle mismatched numbers of reference lists.
modified:
bzrlib/index.py index.py-20070712131115-lolkarso50vjr64s-1
bzrlib/tests/test_index.py test_index.py-20070712131115-lolkarso50vjr64s-2
=== modified file 'bzrlib/index.py'
--- a/bzrlib/index.py 2007-07-12 16:49:54 +0000
+++ b/bzrlib/index.py 2007-07-13 05:41:55 +0000
@@ -54,6 +54,8 @@
raise errors.BadIndexKey(key)
if _newline_null_re.search(value) is not None:
raise errors.BadIndexValue(value)
+ if len(references) != self.reference_lists:
+ raise errors.BadIndexValue(references)
self._nodes.append((key, references, value))
def finish(self):
=== modified file 'bzrlib/tests/test_index.py'
--- a/bzrlib/tests/test_index.py 2007-07-12 16:49:54 +0000
+++ b/bzrlib/tests/test_index.py 2007-07-13 05:41:55 +0000
@@ -49,18 +49,35 @@
self.assertEqual("Bazaar Graph Index 1\nnode_ref_lists=0\n"
"akey\0\0data\n\n", contents)
- def test_build_index_bad_key(self):
+ def test_add_node_bad_key(self):
builder = GraphIndexBuilder()
self.assertRaises(errors.BadIndexKey, builder.add_node, 'a key',
(), 'data')
- def test_build_index_bad_data(self):
+ def test_add_node_bad_data(self):
builder = GraphIndexBuilder()
self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
(), 'data\naa')
self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
(), 'data\0aa')
+ def test_add_node_bad_mismatched_ref_lists_length(self):
+ builder = GraphIndexBuilder()
+ self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
+ ([], ), 'data aa')
+ builder = GraphIndexBuilder(reference_lists=1)
+ self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
+ (), 'data aa')
+ self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
+ ([], []), 'data aa')
+ builder = GraphIndexBuilder(reference_lists=2)
+ self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
+ (), 'data aa')
+ self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
+ ([], ), 'data aa')
+ self.assertRaises(errors.BadIndexValue, builder.add_node, 'akey',
+ ([], [], []), 'data aa')
+
class TestGraphIndex(TestCaseWithMemoryTransport):
More information about the bazaar-commits
mailing list