~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-27 19:45:18 UTC
  • mfrom: (1185.16.130)
  • Revision ID: robertc@robertcollins.net-20051027194518-58afabc9ab280bb0
MergeĀ fromĀ Martin

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
from bzrlib.trace import mutter
23
23
from bzrlib.branch import Branch
24
24
from bzrlib.fetch import greedy_fetch
 
25
from bzrlib.merge import merge
 
26
from bzrlib.clone import copy_branch
25
27
 
26
28
from bzrlib.selftest import TestCaseInTempDir
27
29
from bzrlib.selftest.HTTPTestUtil import TestCaseWithWebserver
106
108
        fetch_steps(self, br_a, br_b, br_a)
107
109
 
108
110
 
 
111
class TestMergeFetch(TestCaseInTempDir):
 
112
 
 
113
    def test_merge_fetches_unrelated(self):
 
114
        """Merge brings across history from unrelated source"""
 
115
        os.mkdir('br1')
 
116
        br1 = Branch.initialize('br1')
 
117
        br1.commit(message='rev 1-1', rev_id='1-1')
 
118
        br1.commit(message='rev 1-2', rev_id='1-2')
 
119
        os.mkdir('br2')
 
120
        br2 = Branch.initialize('br2')
 
121
        br2.commit(message='rev 2-1', rev_id='2-1')
 
122
        merge(other_revision=['br1', -1], base_revision=['br1', 0],
 
123
              this_dir='br2')
 
124
        self._check_revs_present(br2)
 
125
 
 
126
    def test_merge_fetches(self):
 
127
        """Merge brings across history from source"""
 
128
        os.mkdir('br1')
 
129
        br1 = Branch.initialize('br1')
 
130
        br1.commit(message='rev 1-1', rev_id='1-1')
 
131
        copy_branch(br1, 'br2')
 
132
        br2 = Branch.open('br2')
 
133
        br1.commit(message='rev 1-2', rev_id='1-2')
 
134
        br2.commit(message='rev 2-1', rev_id='2-1')
 
135
        merge(other_revision=['br1', -1], base_revision=[None, None], 
 
136
              this_dir='br2')
 
137
        self._check_revs_present(br2)
 
138
 
 
139
    def _check_revs_present(self, br2):
 
140
        for rev_id in '1-1', '1-2', '2-1':
 
141
            self.assertTrue(br2.has_revision(rev_id))
 
142
            rev = br2.get_revision(rev_id)
 
143
            self.assertEqual(rev.revision_id, rev_id)
 
144
            self.assertTrue(br2.get_inventory(rev_id))
 
145
 
 
146
 
 
147
 
 
148
class TestMergeFileHistory(TestCaseInTempDir):
 
149
    def setUp(self):
 
150
        TestCaseInTempDir.setUp(self)
 
151
        os.mkdir('br1')
 
152
        br1 = Branch.initialize('br1')
 
153
        self.build_tree_contents([('br1/file', 'original contents\n')])
 
154
        br1.add(['file'], ['this-file-id'])
 
155
        br1.commit(message='rev 1-1', rev_id='1-1')
 
156
        copy_branch(br1, 'br2')
 
157
        br2 = Branch.open('br2')
 
158
        self.build_tree_contents([('br1/file', 'original from 1\n')])
 
159
        br1.commit(message='rev 1-2', rev_id='1-2')
 
160
        self.build_tree_contents([('br1/file', 'agreement\n')])
 
161
        br1.commit(message='rev 1-3', rev_id='1-3')
 
162
        self.build_tree_contents([('br2/file', 'contents in 2\n')])
 
163
        br2.commit(message='rev 2-1', rev_id='2-1')
 
164
        self.build_tree_contents([('br2/file', 'agreement\n')])
 
165
        br2.commit(message='rev 2-2', rev_id='2-2')
 
166
 
 
167
    def test_merge_fetches_file_history(self):
 
168
        """Merge brings across file histories"""
 
169
        br2 = Branch.open('br2')
 
170
        merge(other_revision=['br1', -1], base_revision=[None, None], 
 
171
              this_dir='br2')
 
172
        for rev_id, text in [('1-2', 'original from 1\n'),
 
173
                             ('1-3', 'agreement\n'),
 
174
                             ('2-1', 'contents in 2\n'),
 
175
                             ('2-2', 'agreement\n')]:
 
176
            self.assertEqualDiff(br2.revision_tree(rev_id).get_file_text('this-file-id'),
 
177
                                 text)
 
178
 
 
179
 
 
180
 
 
181
 
109
182
class TestHttpFetch(TestCaseWithWebserver):
110
183
 
111
184
    def setUp(self):