~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_interrepository/__init__.py

  • Committer: Vincent Ladeuil
  • Date: 2011-07-06 09:22:00 UTC
  • mfrom: (6008 +trunk)
  • mto: (6012.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 6013.
  • Revision ID: v.ladeuil+lp@free.fr-20110706092200-7iai2mwzc0sqdsvf
MergingĀ inĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
"""
27
27
 
28
28
 
29
 
from bzrlib import transport
 
29
from bzrlib import (
 
30
    pyutils,
 
31
    transport,
 
32
    )
30
33
from bzrlib.errors import (
31
34
    FileExists,
32
35
    UninitializableFormat,
33
36
    )
34
37
 
35
38
from bzrlib.repository import (
 
39
    format_registry,
36
40
    InterRepository,
37
41
    )
38
42
from bzrlib.tests import (
39
 
                          default_transport,
40
 
                          multiply_tests,
41
 
                          )
 
43
    TestSkipped,
 
44
    default_transport,
 
45
    multiply_tests,
 
46
    )
42
47
from bzrlib.tests.per_controldir.test_controldir import TestCaseWithControlDir
 
48
from bzrlib.vf_repository import (
 
49
    InterDifferingSerializer,
 
50
    )
43
51
 
44
52
 
45
53
def make_scenarios(transport_server, transport_readonly_server, formats):
68
76
    from bzrlib.repofmt import (
69
77
        groupcompress_repo,
70
78
        knitrepo,
71
 
        pack_repo,
72
 
        weaverepo,
 
79
        knitpack_repo,
73
80
        )
74
81
    result = []
75
 
    def add_combo(label, from_format, to_format, extra_setup=None):
 
82
    def add_combo(interrepo_cls, from_format, to_format, extra_setup=None,
 
83
                  label=None):
 
84
        if label is None:
 
85
            label = interrepo_cls.__name__
76
86
        result.append((label, from_format, to_format, extra_setup))
77
87
    # test the default InterRepository between format 6 and the current
78
88
    # default format.
84
94
    for optimiser_class in InterRepository._optimisers:
85
95
        format_to_test = optimiser_class._get_repo_format_to_test()
86
96
        if format_to_test is not None:
87
 
            add_combo(optimiser_class.__name__, format_to_test, format_to_test)
 
97
            add_combo(optimiser_class, format_to_test, format_to_test)
88
98
    # if there are specific combinations we want to use, we can add them
89
99
    # here. We want to test rich root upgrading.
90
100
    # XXX: although we attach InterRepository class names to these scenarios,
93
103
    def force_known_graph(testcase):
94
104
        from bzrlib.fetch import Inter1and2Helper
95
105
        testcase.overrideAttr(Inter1and2Helper, 'known_graph_threshold', -1)
96
 
    add_combo('InterRepository',
97
 
              weaverepo.RepositoryFormat5(),
98
 
              knitrepo.RepositoryFormatKnit3())
99
 
    add_combo('InterRepository',
100
 
              knitrepo.RepositoryFormatKnit1(),
101
 
              knitrepo.RepositoryFormatKnit3())
102
 
    add_combo('InterKnitRepo',
103
 
              knitrepo.RepositoryFormatKnit1(),
104
 
              pack_repo.RepositoryFormatKnitPack1())
105
 
    add_combo('InterKnitRepo',
106
 
              pack_repo.RepositoryFormatKnitPack1(),
 
106
    # Gather extra scenarios from the repository implementations,
 
107
    # as InterRepositories can be used by Repository implementations
 
108
    # they aren't aware of.
 
109
    for module_name in format_registry._get_all_modules():
 
110
        module = pyutils.get_named_object(module_name)
 
111
        try:
 
112
            get_extra_interrepo_test_combinations = getattr(
 
113
                module,
 
114
                "get_extra_interrepo_test_combinations")
 
115
        except AttributeError:
 
116
            continue
 
117
        for (interrepo_cls, from_format, to_format) in (
 
118
            get_extra_interrepo_test_combinations()):
 
119
            add_combo(interrepo_cls, from_format, to_format)
 
120
    add_combo(InterRepository,
 
121
              knitrepo.RepositoryFormatKnit1(),
 
122
              knitrepo.RepositoryFormatKnit3())
 
123
    add_combo(knitrepo.InterKnitRepo,
 
124
              knitrepo.RepositoryFormatKnit1(),
 
125
              knitpack_repo.RepositoryFormatKnitPack1())
 
126
    add_combo(knitrepo.InterKnitRepo,
 
127
              knitpack_repo.RepositoryFormatKnitPack1(),
107
128
              knitrepo.RepositoryFormatKnit1())
108
 
    add_combo('InterKnitRepo',
 
129
    add_combo(knitrepo.InterKnitRepo,
109
130
              knitrepo.RepositoryFormatKnit3(),
110
 
              pack_repo.RepositoryFormatKnitPack3())
111
 
    add_combo('InterKnitRepo',
112
 
              pack_repo.RepositoryFormatKnitPack3(),
 
131
              knitpack_repo.RepositoryFormatKnitPack3())
 
132
    add_combo(knitrepo.InterKnitRepo,
 
133
              knitpack_repo.RepositoryFormatKnitPack3(),
113
134
              knitrepo.RepositoryFormatKnit3())
114
 
    add_combo('InterKnitRepo',
115
 
              pack_repo.RepositoryFormatKnitPack3(),
116
 
              pack_repo.RepositoryFormatKnitPack4())
117
 
    add_combo('InterDifferingSerializer',
118
 
              pack_repo.RepositoryFormatKnitPack1(),
119
 
              pack_repo.RepositoryFormatKnitPack6RichRoot())
120
 
    add_combo('InterDifferingSerializer+get_known_graph_ancestry',
121
 
              pack_repo.RepositoryFormatKnitPack1(),
122
 
              pack_repo.RepositoryFormatKnitPack6RichRoot(),
 
135
    add_combo(knitrepo.InterKnitRepo,
 
136
              knitpack_repo.RepositoryFormatKnitPack3(),
 
137
              knitpack_repo.RepositoryFormatKnitPack4())
 
138
    add_combo(InterDifferingSerializer,
 
139
              knitpack_repo.RepositoryFormatKnitPack1(),
 
140
              knitpack_repo.RepositoryFormatKnitPack6RichRoot())
 
141
    add_combo(InterDifferingSerializer,
 
142
              knitpack_repo.RepositoryFormatKnitPack1(),
 
143
              knitpack_repo.RepositoryFormatKnitPack6RichRoot(),
123
144
              force_known_graph,
124
 
              )
125
 
    add_combo('InterDifferingSerializer',
126
 
              pack_repo.RepositoryFormatKnitPack6RichRoot(),
 
145
              label='InterDifferingSerializer+get_known_graph_ancestry')
 
146
    add_combo(InterDifferingSerializer,
 
147
              knitpack_repo.RepositoryFormatKnitPack6RichRoot(),
127
148
              groupcompress_repo.RepositoryFormat2a())
128
 
    add_combo('InterDifferingSerializer',
 
149
    add_combo(InterDifferingSerializer,
129
150
              groupcompress_repo.RepositoryFormat2a(),
130
 
              pack_repo.RepositoryFormatKnitPack6RichRoot())
 
151
              knitpack_repo.RepositoryFormatKnitPack6RichRoot())
131
152
    return result
132
153
 
133
154