~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test__groupcompress.py

(gz) Change minimum required testtools version for selftest to 0.9.5 for
 unicode fixes (Martin [gz])

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2008-2011 Canonical Ltd
 
1
# Copyright (C) 2008, 2009, 2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
17
17
"""Tests for the python and pyrex extensions of groupcompress"""
18
18
 
19
19
from bzrlib import (
 
20
    groupcompress,
20
21
    _groupcompress_py,
21
22
    tests,
22
23
    )
23
 
from bzrlib.tests.scenarios import (
24
 
    load_tests_apply_scenarios,
25
 
    )
26
 
 
27
 
 
28
 
def module_scenarios():
 
24
 
 
25
 
 
26
def load_tests(standard_tests, module, loader):
 
27
    """Parameterize tests for all versions of groupcompress."""
 
28
    two_way_scenarios = [
 
29
        ('PP', {'make_delta': _groupcompress_py.make_delta,
 
30
                'apply_delta': _groupcompress_py.apply_delta})
 
31
        ]
29
32
    scenarios = [
30
33
        ('python', {'_gc_module': _groupcompress_py}),
31
34
        ]
33
36
        gc_module = compiled_groupcompress_feature.module
34
37
        scenarios.append(('C',
35
38
            {'_gc_module': gc_module}))
36
 
    return scenarios
37
 
 
38
 
 
39
 
def two_way_scenarios():
40
 
    scenarios = [
41
 
        ('PP', {'make_delta': _groupcompress_py.make_delta,
42
 
                'apply_delta': _groupcompress_py.apply_delta})
43
 
        ]
44
 
    if compiled_groupcompress_feature.available():
45
 
        gc_module = compiled_groupcompress_feature.module
46
 
        scenarios.extend([
 
39
        two_way_scenarios.extend([
47
40
            ('CC', {'make_delta': gc_module.make_delta,
48
41
                    'apply_delta': gc_module.apply_delta}),
49
42
            ('PC', {'make_delta': _groupcompress_py.make_delta,
51
44
            ('CP', {'make_delta': gc_module.make_delta,
52
45
                    'apply_delta': _groupcompress_py.apply_delta}),
53
46
            ])
54
 
    return scenarios
55
 
 
56
 
 
57
 
load_tests = load_tests_apply_scenarios
 
47
    to_adapt, result = tests.split_suite_by_condition(
 
48
        standard_tests, tests.condition_isinstance((TestMakeAndApplyDelta,
 
49
                                                    TestBase128Int)))
 
50
    result = tests.multiply_tests(to_adapt, scenarios, result)
 
51
    to_adapt, result = tests.split_suite_by_condition(result,
 
52
        tests.condition_isinstance(TestMakeAndApplyCompatible))
 
53
    result = tests.multiply_tests(to_adapt, two_way_scenarios, result)
 
54
    return result
58
55
 
59
56
 
60
57
compiled_groupcompress_feature = tests.ModuleAvailableFeature(
119
116
 
120
117
class TestMakeAndApplyDelta(tests.TestCase):
121
118
 
122
 
    scenarios = module_scenarios()
123
119
    _gc_module = None # Set by load_tests
124
120
 
125
121
    def setUp(self):
230
226
 
231
227
class TestMakeAndApplyCompatible(tests.TestCase):
232
228
 
233
 
    scenarios = two_way_scenarios()
234
 
 
235
229
    make_delta = None # Set by load_tests
236
230
    apply_delta = None # Set by load_tests
237
231
 
463
457
 
464
458
class TestBase128Int(tests.TestCase):
465
459
 
466
 
    scenarios = module_scenarios()
467
 
 
468
460
    _gc_module = None # Set by load_tests
469
461
 
470
462
    def assertEqualEncode(self, bytes, val):