~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test__dirstate_helpers.py

  • Committer: Andrew Bennetts
  • Date: 2010-12-14 23:14:44 UTC
  • mfrom: (5569 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5570.
  • Revision ID: andrew.bennetts@canonical.com-20101214231444-uubf7zjbg8q92ocs
MergeĀ lp:bzr.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
    )
29
29
from bzrlib.tests import (
30
30
    test_dirstate,
31
 
    test_osutils,
32
 
    )
33
 
 
34
 
try:
35
 
    from bzrlib import _dirstate_helpers_pyx
36
 
    has_dirstate_helpers_pyx = True
37
 
except ImportError:
38
 
    has_dirstate_helpers_pyx = False
 
31
    )
 
32
from bzrlib.tests.test_osutils import dir_reader_scenarios
 
33
from bzrlib.tests.scenarios import (
 
34
    load_tests_apply_scenarios,
 
35
    multiply_scenarios,
 
36
    )
 
37
 
 
38
 
 
39
load_tests = load_tests_apply_scenarios
39
40
 
40
41
 
41
42
compiled_dirstate_helpers_feature = tests.ModuleAvailableFeature(
42
 
                                'bzrlib._dirstate_helpers_pyx')
43
 
 
44
 
 
45
 
def load_tests(basic_tests, module, loader):
46
 
    # FIXME: we should also parametrize against SHA1Provider !
47
 
    suite = loader.suiteClass()
48
 
    remaining_tests = basic_tests
49
 
 
50
 
    dir_reader_scenarios = test_osutils.dir_reader_scenarios()
51
 
 
52
 
    ue_scenarios = [('dirstate_Python',
53
 
                     {'update_entry': dirstate.py_update_entry})]
54
 
    if compiled_dirstate_helpers_feature.available():
55
 
        update_entry = compiled_dirstate_helpers_feature.module.update_entry
56
 
        pyrex_scenario = ('dirstate_Pyrex', {'update_entry': update_entry})
57
 
        ue_scenarios.append(pyrex_scenario)
58
 
    process_entry_tests, remaining_tests = tests.split_suite_by_condition(
59
 
        remaining_tests, tests.condition_isinstance(TestUpdateEntry))
60
 
    tests.multiply_tests(process_entry_tests,
61
 
                         tests.multiply_scenarios(dir_reader_scenarios,
62
 
                                                  ue_scenarios),
63
 
                         suite)
64
 
 
65
 
    pe_scenarios = [('dirstate_Python',
66
 
                     {'_process_entry': dirstate.ProcessEntryPython})]
67
 
    if compiled_dirstate_helpers_feature.available():
68
 
        process_entry = compiled_dirstate_helpers_feature.module.ProcessEntryC
69
 
        pyrex_scenario = ('dirstate_Pyrex', {'_process_entry': process_entry})
70
 
        pe_scenarios.append(pyrex_scenario)
71
 
    process_entry_tests, remaining_tests = tests.split_suite_by_condition(
72
 
        remaining_tests, tests.condition_isinstance(TestProcessEntry))
73
 
    tests.multiply_tests(process_entry_tests,
74
 
                         tests.multiply_scenarios(dir_reader_scenarios,
75
 
                                                  pe_scenarios),
76
 
                         suite)
77
 
 
78
 
    dir_reader_tests, remaining_tests = tests.split_suite_by_condition(
79
 
        remaining_tests, tests.condition_isinstance(
80
 
            test_dirstate.TestCaseWithDirState))
81
 
    tests.multiply_tests(dir_reader_tests, dir_reader_scenarios, suite)
82
 
    suite.addTest(remaining_tests)
83
 
 
84
 
    return suite
 
43
    'bzrlib._dirstate_helpers_pyx')
 
44
 
 
45
 
 
46
# FIXME: we should also parametrize against SHA1Provider !
 
47
 
 
48
ue_scenarios = [('dirstate_Python',
 
49
    {'update_entry': dirstate.py_update_entry})]
 
50
if compiled_dirstate_helpers_feature.available():
 
51
    update_entry = compiled_dirstate_helpers_feature.module.update_entry
 
52
    ue_scenarios.append(('dirstate_Pyrex', {'update_entry': update_entry}))
 
53
 
 
54
pe_scenarios = [('dirstate_Python',
 
55
    {'_process_entry': dirstate.ProcessEntryPython})]
 
56
if compiled_dirstate_helpers_feature.available():
 
57
    process_entry = compiled_dirstate_helpers_feature.module.ProcessEntryC
 
58
    pe_scenarios.append(('dirstate_Pyrex', {'_process_entry': process_entry}))
85
59
 
86
60
 
87
61
class TestBisectPathMixin(object):
719
693
    implementation.
720
694
    """
721
695
 
 
696
    # inherits scenarios from test_dirstate
 
697
 
722
698
    def get_read_dirblocks(self):
723
699
        from bzrlib._dirstate_helpers_py import _read_dirblocks
724
700
        return _read_dirblocks
826
802
class TestUpdateEntry(test_dirstate.TestCaseWithDirState):
827
803
    """Test the DirState.update_entry functions"""
828
804
 
 
805
    scenarios = multiply_scenarios(
 
806
        dir_reader_scenarios(), ue_scenarios)
 
807
 
829
808
    # Set by load_tests
830
809
    update_entry = None
831
810
 
1269
1248
 
1270
1249
class TestProcessEntry(test_dirstate.TestCaseWithDirState):
1271
1250
 
 
1251
    scenarios = multiply_scenarios(dir_reader_scenarios(), pe_scenarios)
 
1252
 
1272
1253
    # Set by load_tests
1273
1254
    _process_entry = None
1274
1255