/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

Merge bzr.dev r3466

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
rather than in tests/interrepository_implementations/*.py.
26
26
"""
27
27
 
 
28
 
 
29
from bzrlib.errors import (
 
30
    FileExists,
 
31
    UninitializableFormat,
 
32
    )
 
33
 
28
34
from bzrlib.repository import (
29
35
                               InterKnitRepo,
30
36
                               InterKnit1and2,
34
40
from bzrlib.tests import (
35
41
                          adapt_modules,
36
42
                          default_transport,
37
 
                          TestLoader,
38
43
                          TestScenarioApplier,
39
 
                          TestSuite,
40
44
                          )
 
45
from bzrlib.tests.bzrdir_implementations.test_bzrdir import TestCaseWithBzrDir
 
46
from bzrlib.transport import get_transport
41
47
 
42
48
 
43
49
class InterRepositoryTestProviderAdapter(TestScenarioApplier):
63
69
        """
64
70
        result = []
65
71
        for interrepo_class, repository_format, repository_format_to in formats:
66
 
            scenario = (interrepo_class.__name__,
 
72
            id = '%s,%s,%s' % (interrepo_class.__name__,
 
73
                                repository_format.__class__.__name__,
 
74
                                repository_format_to.__class__.__name__)
 
75
            scenario = (id,
67
76
                {"transport_server":self._transport_server,
68
77
                 "transport_readonly_server":self._transport_readonly_server,
69
78
                 "repository_format":repository_format,
116
125
        return result
117
126
 
118
127
 
119
 
def test_suite():
120
 
    result = TestSuite()
 
128
class TestCaseWithInterRepository(TestCaseWithBzrDir):
 
129
 
 
130
    def setUp(self):
 
131
        super(TestCaseWithInterRepository, self).setUp()
 
132
 
 
133
    def make_branch(self, relpath, format=None):
 
134
        repo = self.make_repository(relpath, format=format)
 
135
        return repo.bzrdir.create_branch()
 
136
 
 
137
    def make_bzrdir(self, relpath, format=None):
 
138
        try:
 
139
            url = self.get_url(relpath)
 
140
            segments = url.split('/')
 
141
            if segments and segments[-1] not in ('', '.'):
 
142
                parent = '/'.join(segments[:-1])
 
143
                t = get_transport(parent)
 
144
                try:
 
145
                    t.mkdir(segments[-1])
 
146
                except FileExists:
 
147
                    pass
 
148
            if format is None:
 
149
                format = self.repository_format._matchingbzrdir
 
150
            return format.initialize(url)
 
151
        except UninitializableFormat:
 
152
            raise TestSkipped("Format %s is not initializable." % format)
 
153
 
 
154
    def make_repository(self, relpath, format=None):
 
155
        made_control = self.make_bzrdir(relpath, format=format)
 
156
        return self.repository_format.initialize(made_control)
 
157
 
 
158
    def make_to_repository(self, relpath):
 
159
        made_control = self.make_bzrdir(relpath,
 
160
            self.repository_format_to._matchingbzrdir)
 
161
        return self.repository_format_to.initialize(made_control)
 
162
 
 
163
 
 
164
def load_tests(basic_tests, module, loader):
 
165
    result = loader.suiteClass()
 
166
    # add the tests for this module
 
167
    result.addTests(basic_tests)
 
168
 
121
169
    test_interrepository_implementations = [
 
170
        'bzrlib.tests.interrepository_implementations.test_fetch',
122
171
        'bzrlib.tests.interrepository_implementations.test_interrepository',
123
172
        ]
124
173
    adapter = InterRepositoryTestProviderAdapter(
128
177
        None,
129
178
        InterRepositoryTestProviderAdapter.default_test_list()
130
179
        )
131
 
    loader = TestLoader()
 
180
    # add the tests for the sub modules
132
181
    adapt_modules(test_interrepository_implementations, adapter, loader, result)
133
182
    return result