40
40
'factory':make_pack_factory(False, False, 1),
43
'support_partial_insertion':False,
45
46
applier = TestScenarioApplier()
76
77
def test_two_nosha_delta(self):
77
78
compressor = groupcompress.GroupCompressor(True)
78
79
sha1_1, _ = compressor.compress(('label',),
79
['strange\n', 'common\n'], None)
80
['strange\n', 'common long line\n'], None)
80
81
expected_lines = list(compressor.lines)
81
82
sha1_2, end_point = compressor.compress(('newlabel',),
82
['common\n', 'different\n'], None)
83
self.assertEqual(sha_strings(['common\n', 'different\n']), sha1_2)
83
['common long line\n', 'different\n'], None)
84
self.assertEqual(sha_strings(['common long line\n', 'different\n']),
84
86
expected_lines.extend([
85
87
'label: newlabel\n',
86
88
'sha1: %s\n' % sha1_2,
87
89
# copy the line common
89
# add the line different
91
# add the line different, and the trailing newline
92
# Insert the trailing newline.
96
self.assertEqual(expected_lines, compressor.lines)
96
self.assertEqualDiff(''.join(expected_lines), ''.join(compressor.lines))
97
97
self.assertEqual(sum(map(len, expected_lines)), end_point)
99
99
def test_three_nosha_delta(self):
102
102
compressor = groupcompress.GroupCompressor(True)
103
103
sha1_1, end_point = compressor.compress(('label',),
104
['strange\n', 'common\n'], None)
104
['strange\n', 'common long line\n'], None)
105
105
sha1_2, _ = compressor.compress(('newlabel',),
106
['common\n', 'different\n', 'moredifferent\n'], None)
106
['common long line\n', 'different\n', 'moredifferent\n'], None)
107
107
expected_lines = list(compressor.lines)
108
108
sha1_3, end_point = compressor.compress(('label3',),
109
['new\n', 'common\n', 'different\n', 'moredifferent\n'], None)
109
['new\n', 'common long line\n', 'different\n', 'moredifferent\n'],
110
111
self.assertEqual(
111
sha_strings(['new\n', 'common\n', 'different\n', 'moredifferent\n']),
112
sha_strings(['new\n', 'common long line\n', 'different\n',
113
115
expected_lines.extend([
114
116
'label: label3\n',
119
121
# copy the line common
121
# copy the lines different, moredifferent
123
# Insert the trailing newline.
123
# copy the lines different, moredifferent and trailing newline
127
126
self.assertEqualDiff(''.join(expected_lines),
128
127
''.join(compressor.lines))