Rev 3389: Stacked make_mpdiffs. in http://people.ubuntu.com/~robertc/baz2.0/shallow-branch
Robert Collins
robertc at robertcollins.net
Wed Jun 25 02:29:52 BST 2008
At http://people.ubuntu.com/~robertc/baz2.0/shallow-branch
------------------------------------------------------------
revno: 3389
revision-id: robertc at robertcollins.net-20080625012948-aclmfg49kaf8zdv8
parent: robertc at robertcollins.net-20080625004056-22wn6kasogkq9erq
committer: Robert Collins <robertc at robertcollins.net>
branch nick: stacking-knits
timestamp: Wed 2008-06-25 11:29:48 +1000
message:
Stacked make_mpdiffs.
modified:
bzrlib/tests/test_knit.py test_knit.py-20051212171302-95d4c00dd5f11f2b
=== modified file 'bzrlib/tests/test_knit.py'
--- a/bzrlib/tests/test_knit.py 2008-06-25 00:40:56 +0000
+++ b/bzrlib/tests/test_knit.py 2008-06-25 01:29:48 +0000
@@ -26,6 +26,7 @@
errors,
generate_ids,
knit,
+ multiparent,
pack,
)
from bzrlib.errors import (
@@ -1733,8 +1734,8 @@
test.add_mpdiffs([(key_delta, (key_basis,),
source.get_sha1s([key_delta])[key_delta], diffs[0])])
self.assertEqual([("get_parent_map", set([key_basis])),
- ('get_record_stream', [('bar',)], 'unordered', True),
- ('get_parent_map', set([('bar',)]))],
+ ('get_record_stream', [key_basis], 'unordered', True),
+ ('get_parent_map', set([key_basis]))],
basis.calls)
self.assertEqual({key_delta:(key_basis,)},
test.get_parent_map([key_delta]))
@@ -1742,4 +1743,31 @@
'unordered', True).next().get_bytes_as('fulltext'))
def test_make_mpdiffs(self):
- pass
+ # Generating an mpdiff across a stacking boundary should detect parent
+ # texts regions.
+ key = ('foo',)
+ key_left = ('bar',)
+ key_right = ('zaphod',)
+ basis, test = self.get_basis_and_test_knit()
+ basis.add_lines(key_left, (), ['bar\n'])
+ basis.add_lines(key_right, (), ['zaphod\n'])
+ basis.calls = []
+ test.add_lines(key, (key_left, key_right),
+ ['bar\n', 'foo\n', 'zaphod\n'])
+ diffs = test.make_mpdiffs([key])
+ self.assertEqual([
+ multiparent.MultiParent([multiparent.ParentText(0, 0, 0, 1),
+ multiparent.NewText(['foo\n']),
+ multiparent.ParentText(1, 0, 2, 1)])],
+ diffs)
+ self.assertEqual(4, len(basis.calls))
+ self.assertEqual([
+ ("get_parent_map", set([key_left, key_right])),
+ ("get_parent_map", set([key_left, key_right])),
+ ("get_parent_map", set([key_left, key_right])),
+ ],
+ basis.calls[:3])
+ self.assertEqual(set([key_left, key_right]), set(basis.calls[3][1]))
+ self.assertEqual('get_record_stream', basis.calls[3][0])
+ self.assertEqual('unordered', basis.calls[3][2])
+ self.assertEqual(True, basis.calls[3][3])
More information about the bazaar-commits
mailing list