26
26
def load_tests(standard_tests, module, loader):
27
27
"""Parameterize tests for all versions of groupcompress."""
28
to_adapt, result = tests.split_suite_by_condition(
29
standard_tests, tests.condition_isinstance(TestMakeAndApplyDelta))
29
('PP', {'make_delta': _groupcompress_py.make_delta,
30
'apply_delta': _groupcompress_py.apply_delta})
31
33
('python', {'_gc_module': _groupcompress_py}),
34
36
from bzrlib import _groupcompress_pyx
35
37
scenarios.append(('C',
36
38
{'_gc_module': _groupcompress_pyx}))
37
return tests.multiply_tests(to_adapt, scenarios, result)
39
two_way_scenarios.extend([
40
('CC', {'make_delta': _groupcompress_pyx.make_delta,
41
'apply_delta': _groupcompress_pyx.apply_delta}),
42
('PC', {'make_delta': _groupcompress_py.make_delta,
43
'apply_delta': _groupcompress_pyx.apply_delta}),
44
('CP', {'make_delta': _groupcompress_pyx.make_delta,
45
'apply_delta': _groupcompress_py.apply_delta}),
47
to_adapt, result = tests.split_suite_by_condition(
48
standard_tests, tests.condition_isinstance(TestMakeAndApplyDelta))
49
result = tests.multiply_tests(to_adapt, scenarios, result)
50
to_adapt, result = tests.split_suite_by_condition(result,
51
tests.condition_isinstance(TestMakeAndApplyCompatible))
52
result = tests.multiply_tests(to_adapt, two_way_scenarios, result)
40
56
class _CompiledGroupCompressFeature(tests.Feature):
185
201
self.assertEqual(_text1, target)
204
class TestMakeAndApplyCompatible(tests.TestCase):
206
make_delta = None # filled in by multiply_tests
207
apply_delta = None # filled in by multiply_tests
209
def assertMakeAndApply(self, source, target):
210
"""Assert that generating a delta and applying gives success."""
211
delta = self.make_delta(source, target)
212
bytes = self.apply_delta(source, delta)
213
self.assertEqualDiff(target, bytes)
215
def test_direct(self):
216
self.assertMakeAndApply(_text1, _text2)
217
self.assertMakeAndApply(_text2, _text1)
218
self.assertMakeAndApply(_text1, _text3)
219
self.assertMakeAndApply(_text3, _text1)
220
self.assertMakeAndApply(_text2, _text3)
221
self.assertMakeAndApply(_text3, _text2)
188
224
class TestDeltaIndex(tests.TestCase):