~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/testfetch.py

  • Committer: Robert Collins
  • Date: 2005-10-30 00:00:09 UTC
  • mfrom: (1185.16.134)
  • Revision ID: robertc@robertcollins.net-20051030000009-9db99a338a0dfdac
MergeĀ fromĀ Martin.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
import sys
19
19
 
20
20
import bzrlib.errors
21
 
from bzrlib.tests.test_revision import make_branches
 
21
from bzrlib.selftest.testrevision import make_branches
22
22
from bzrlib.trace import mutter
23
23
from bzrlib.branch import Branch
24
24
from bzrlib.fetch import greedy_fetch
25
25
from bzrlib.merge import merge
26
26
from bzrlib.clone import copy_branch
27
27
 
28
 
from bzrlib.tests import TestCaseInTempDir
29
 
from bzrlib.tests.HTTPTestUtil import TestCaseWithWebserver
 
28
from bzrlib.selftest import TestCaseInTempDir
 
29
from bzrlib.selftest.HTTPTestUtil import TestCaseWithWebserver
30
30
 
31
31
 
32
32
def has_revision(branch, revision_id):
33
33
    try:
34
 
        branch.get_revision_xml(revision_id)
 
34
        branch.get_revision_xml_file(revision_id)
35
35
        return True
36
36
    except bzrlib.errors.NoSuchRevision:
37
37
        return False
42
42
        os.mkdir(name)
43
43
        return Branch.initialize(name)
44
44
            
45
 
    self.assertFalse(has_revision(br_b, br_a.revision_history()[3]))
46
 
    self.assert_(has_revision(br_b, br_a.revision_history()[2]))
47
 
    self.assertEquals(len(br_b.revision_history()), 7)
48
 
    self.assertEquals(greedy_fetch(br_b, br_a, br_a.revision_history()[2])[0], 0)
 
45
    assert not has_revision(br_b, br_a.revision_history()[3])
 
46
    assert has_revision(br_b, br_a.revision_history()[2])
 
47
    assert len(br_b.revision_history()) == 7
 
48
    assert greedy_fetch(br_b, br_a, br_a.revision_history()[2])[0] == 0
49
49
 
50
50
    # greedy_fetch is not supposed to alter the revision history
51
 
    self.assertEquals(len(br_b.revision_history()), 7)
52
 
    self.assertFalse(has_revision(br_b, br_a.revision_history()[3]))
 
51
    assert len(br_b.revision_history()) == 7
 
52
    assert not has_revision(br_b, br_a.revision_history()[3])
53
53
 
54
 
    self.assertEquals(len(br_b.revision_history()), 7)
55
 
    self.assertEquals(greedy_fetch(br_b, br_a, br_a.revision_history()[3])[0], 1)
56
 
    self.assert_(has_revision(br_b, br_a.revision_history()[3]))
57
 
    self.assertFalse(has_revision(br_a, br_b.revision_history()[6]))
58
 
    self.assert_(has_revision(br_a, br_b.revision_history()[5]))
 
54
    assert len(br_b.revision_history()) == 7
 
55
    assert greedy_fetch(br_b, br_a, br_a.revision_history()[3])[0] == 1
 
56
    assert has_revision(br_b, br_a.revision_history()[3])
 
57
    assert not has_revision(br_a, br_b.revision_history()[6])
 
58
    assert has_revision(br_a, br_b.revision_history()[5])
59
59
 
60
60
    # When a non-branch ancestor is missing, it should be unlisted...
61
61
    # as its not reference from the inventory weave.
65
65
    self.assertEqual(failures, [])
66
66
 
67
67
    self.assertEqual(greedy_fetch(writable_a, br_b)[0], 1)
68
 
    self.assert_(has_revision(br_a, br_b.revision_history()[3]))
69
 
    self.assert_(has_revision(br_a, br_b.revision_history()[4]))
 
68
    assert has_revision(br_a, br_b.revision_history()[3])
 
69
    assert has_revision(br_a, br_b.revision_history()[4])
70
70
        
71
71
    br_b2 = new_branch('br_b2')
72
 
    self.assertEquals(greedy_fetch(br_b2, br_b)[0], 7)
73
 
    self.assert_(has_revision(br_b2, br_b.revision_history()[4]))
74
 
    self.assert_(has_revision(br_b2, br_a.revision_history()[2]))
75
 
    self.assertFalse(has_revision(br_b2, br_a.revision_history()[3]))
 
72
    assert greedy_fetch(br_b2, br_b)[0] == 7
 
73
    assert has_revision(br_b2, br_b.revision_history()[4])
 
74
    assert has_revision(br_b2, br_a.revision_history()[2])
 
75
    assert not has_revision(br_b2, br_a.revision_history()[3])
76
76
 
77
77
    br_a2 = new_branch('br_a2')
78
 
    self.assertEquals(greedy_fetch(br_a2, br_a)[0], 9)
79
 
    self.assert_(has_revision(br_a2, br_b.revision_history()[4]))
80
 
    self.assert_(has_revision(br_a2, br_a.revision_history()[3]))
81
 
    self.assert_(has_revision(br_a2, br_a.revision_history()[2]))
 
78
    assert greedy_fetch(br_a2, br_a)[0] == 9
 
79
    assert has_revision(br_a2, br_b.revision_history()[4])
 
80
    assert has_revision(br_a2, br_a.revision_history()[3])
 
81
    assert has_revision(br_a2, br_a.revision_history()[2])
82
82
 
83
83
    br_a3 = new_branch('br_a3')
84
 
    self.assertEquals(greedy_fetch(br_a3, br_a2)[0], 0)
 
84
    assert greedy_fetch(br_a3, br_a2)[0] == 0
85
85
    for revno in range(4):
86
 
        self.assertFalse(has_revision(br_a3, br_a.revision_history()[revno]))
 
86
        assert not has_revision(br_a3, br_a.revision_history()[revno])
87
87
    self.assertEqual(greedy_fetch(br_a3, br_a2, br_a.revision_history()[2])[0], 3)
88
88
    fetched = greedy_fetch(br_a3, br_a2, br_a.revision_history()[3])[0]
89
 
    self.assertEquals(fetched, 3, "fetched %d instead of 3" % fetched)
 
89
    assert fetched == 3, "fetched %d instead of 3" % fetched
90
90
    # InstallFailed should be raised if the branch is missing the revision
91
91
    # that was requested.
92
92
    self.assertRaises(bzrlib.errors.InstallFailed, greedy_fetch, br_a3,
104
104
 
105
105
    def test_fetch(self):
106
106
        #highest indices a: 5, b: 7
107
 
        br_a, br_b = make_branches(self)
 
107
        br_a, br_b = make_branches()
108
108
        fetch_steps(self, br_a, br_b, br_a)
109
109
 
110
110
 
114
114
        """Merge brings across history from unrelated source"""
115
115
        os.mkdir('br1')
116
116
        br1 = Branch.initialize('br1')
117
 
        br1.working_tree().commit(message='rev 1-1', rev_id='1-1')
118
 
        br1.working_tree().commit(message='rev 1-2', rev_id='1-2')
 
117
        br1.commit(message='rev 1-1', rev_id='1-1')
 
118
        br1.commit(message='rev 1-2', rev_id='1-2')
119
119
        os.mkdir('br2')
120
120
        br2 = Branch.initialize('br2')
121
 
        br2.working_tree().commit(message='rev 2-1', rev_id='2-1')
 
121
        br2.commit(message='rev 2-1', rev_id='2-1')
122
122
        merge(other_revision=['br1', -1], base_revision=['br1', 0],
123
123
              this_dir='br2')
124
124
        self._check_revs_present(br2)
127
127
        """Merge brings across history from source"""
128
128
        os.mkdir('br1')
129
129
        br1 = Branch.initialize('br1')
130
 
        br1.working_tree().commit(message='rev 1-1', rev_id='1-1')
 
130
        br1.commit(message='rev 1-1', rev_id='1-1')
131
131
        copy_branch(br1, 'br2')
132
132
        br2 = Branch.open('br2')
133
 
        br1.working_tree().commit(message='rev 1-2', rev_id='1-2')
134
 
        br2.working_tree().commit(message='rev 2-1', rev_id='2-1')
 
133
        br1.commit(message='rev 1-2', rev_id='1-2')
 
134
        br2.commit(message='rev 2-1', rev_id='2-1')
135
135
        merge(other_revision=['br1', -1], base_revision=[None, None], 
136
136
              this_dir='br2')
137
137
        self._check_revs_present(br2)
151
151
        os.mkdir('br1')
152
152
        br1 = Branch.initialize('br1')
153
153
        self.build_tree_contents([('br1/file', 'original contents\n')])
154
 
        br1.working_tree().add(['file'], ['this-file-id'])
155
 
        br1.working_tree().commit(message='rev 1-1', rev_id='1-1')
 
154
        br1.add(['file'], ['this-file-id'])
 
155
        br1.commit(message='rev 1-1', rev_id='1-1')
156
156
        copy_branch(br1, 'br2')
157
157
        br2 = Branch.open('br2')
158
158
        self.build_tree_contents([('br1/file', 'original from 1\n')])
159
 
        br1.working_tree().commit(message='rev 1-2', rev_id='1-2')
 
159
        br1.commit(message='rev 1-2', rev_id='1-2')
160
160
        self.build_tree_contents([('br1/file', 'agreement\n')])
161
 
        br1.working_tree().commit(message='rev 1-3', rev_id='1-3')
 
161
        br1.commit(message='rev 1-3', rev_id='1-3')
162
162
        self.build_tree_contents([('br2/file', 'contents in 2\n')])
163
 
        br2.working_tree().commit(message='rev 2-1', rev_id='2-1')
 
163
        br2.commit(message='rev 2-1', rev_id='2-1')
164
164
        self.build_tree_contents([('br2/file', 'agreement\n')])
165
 
        br2.working_tree().commit(message='rev 2-2', rev_id='2-2')
 
165
        br2.commit(message='rev 2-2', rev_id='2-2')
166
166
 
167
167
    def test_merge_fetches_file_history(self):
168
168
        """Merge brings across file histories"""
187
187
 
188
188
    def test_fetch(self):
189
189
        #highest indices a: 5, b: 7
190
 
        br_a, br_b = make_branches(self)
 
190
        br_a, br_b = make_branches()
191
191
        br_rem_a = Branch.open(self.get_remote_url(br_a._transport.base))
192
192
        fetch_steps(self, br_rem_a, br_b, br_a)
193
193
 
194
194
    def log(self, *args):
195
195
        """Capture web server log messages for introspection."""
196
196
        super(TestHttpFetch, self).log(*args)
197
 
        # if this call indicates a url being fetched, save it specially
198
197
        if args[0].startswith("webserver"):
199
 
            self.weblogs.append(args[3])
 
198
            self.weblogs.append(args[0])
200
199
 
201
200
    def test_weaves_are_retrieved_once(self):
202
201
        self.build_tree(("source/", "source/file", "target/"))
203
202
        branch = Branch.initialize("source")
204
 
        branch.working_tree().add(["file"], ["id"])
205
 
        branch.working_tree().commit("added file")
 
203
        branch.add(["file"], ["id"])
 
204
        branch.commit("added file")
206
205
        print >>open("source/file", 'w'), "blah"
207
 
        branch.working_tree().commit("changed file")
 
206
        branch.commit("changed file")
208
207
        target = Branch.initialize("target/")
209
208
        source = Branch.open(self.get_remote_url("source/"))
210
209
        self.assertEqual(greedy_fetch(target, source), (2, []))