~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_repository_reference/test_fetch.py

  • Committer: Patch Queue Manager
  • Date: 2016-01-31 13:36:59 UTC
  • mfrom: (6613.1.5 1538480-match-hostname)
  • Revision ID: pqm@pqm.ubuntu.com-20160131133659-ouy92ee2wlv9xz8m
(vila) Use ssl.match_hostname instead of our own. (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
from bzrlib import (
19
19
    branch,
20
 
    errors,
21
 
    )
22
 
from bzrlib.smart import (
23
 
    server,
 
20
    vf_search,
24
21
    )
25
22
from bzrlib.tests.per_repository import TestCaseWithRepository
26
23
 
27
24
 
28
 
class TestFetch(TestCaseWithRepository):
 
25
class TestFetchBase(TestCaseWithRepository):
29
26
 
30
27
    def make_source_branch(self):
31
28
        # It would be nice if there was a way to force this to be memory-only
51
48
        self.addCleanup(source_b.unlock)
52
49
        return content, source_b
53
50
 
 
51
 
 
52
class TestFetch(TestFetchBase):
 
53
 
54
54
    def test_sprout_from_stacked_with_short_history(self):
55
55
        content, source_b = self.make_source_branch()
56
56
        # Split the generated content into a base branch, and a stacked branch
149
149
        source_b.lock_read()
150
150
        self.addCleanup(source_b.unlock)
151
151
        stacked.pull(source_b, stop_revision='B-id')
 
152
 
 
153
 
 
154
class TestFetchFromRepoWithUnconfiguredFallbacks(TestFetchBase):
 
155
 
 
156
    def make_stacked_source_repo(self):
 
157
        _, source_b = self.make_source_branch()
 
158
        # Use 'make_branch' which gives us a bzr:// branch when appropriate,
 
159
        # rather than creating a branch-on-disk
 
160
        stack_b = self.make_branch('stack-on')
 
161
        stack_b.pull(source_b, stop_revision='B-id')
 
162
        stacked_b = self.make_branch('stacked')
 
163
        stacked_b.set_stacked_on_url('../stack-on')
 
164
        stacked_b.pull(source_b, stop_revision='C-id')
 
165
        return stacked_b.repository
 
166
 
 
167
    def test_fetch_everything_includes_parent_invs(self):
 
168
        stacked = self.make_stacked_source_repo()
 
169
        repo_missing_fallbacks = stacked.bzrdir.open_repository()
 
170
        self.addCleanup(repo_missing_fallbacks.lock_read().unlock)
 
171
        target = self.make_repository('target')
 
172
        self.addCleanup(target.lock_write().unlock)
 
173
        target.fetch(
 
174
            repo_missing_fallbacks,
 
175
            fetch_spec=vf_search.EverythingResult(repo_missing_fallbacks))
 
176
        self.assertEqual(repo_missing_fallbacks.revisions.keys(),
 
177
            target.revisions.keys())
 
178
        self.assertEqual(repo_missing_fallbacks.inventories.keys(),
 
179
            target.inventories.keys())
 
180
        self.assertEqual(['C-id'],
 
181
            sorted(k[-1] for k in target.revisions.keys()))
 
182
        self.assertEqual(['B-id', 'C-id'],
 
183
            sorted(k[-1] for k in target.inventories.keys()))
 
184
 
 
185
 
 
186