/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/blackbox/test_merge_directive.py

  • Committer: Aaron Bentley
  • Date: 2007-07-17 13:27:14 UTC
  • mfrom: (2624 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2631.
  • Revision ID: abentley@panoramicfeedback.com-20070717132714-tmzx9khmg9501k51
Merge from bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
 
56
56
    def test_merge_directive(self):
57
57
        self.prepare_merge_directive()
58
 
        md_text = self.run_bzr('merge-directive', '../tree2')[0]
 
58
        md_text = self.run_bzr('merge-directive ../tree2')[0]
59
59
        self.assertContainsRe(md_text, "\\+e")
60
 
        md_text = self.run_bzr('merge-directive', '-r', '-2', '../tree2')[0]
 
60
        md_text = self.run_bzr('merge-directive -r -2 ../tree2')[0]
61
61
        self.assertNotContainsRe(md_text, "\\+e")
62
 
        md_text = self.run_bzr('merge-directive', '-r',
63
 
                               '-1..-2', '../tree2')[0]
 
62
        md_text = self.run_bzr('merge-directive -r -1..-2 ../tree2')[0]
64
63
        md2 = merge_directive.MergeDirective.from_lines(
65
64
            md_text.splitlines(True))
66
65
        self.assertEqual('foo-id', md2.revision_id)
69
68
    def test_submit_branch(self):
70
69
        self.prepare_merge_directive()
71
70
        self.run_bzr_error(('No submit branch',), 'merge-directive', retcode=3)
72
 
        self.run_bzr('merge-directive', '../tree2')
 
71
        self.run_bzr('merge-directive ../tree2')
73
72
 
74
73
    def test_public_branch(self):
75
74
        self.prepare_merge_directive()
76
 
        self.run_bzr_error(('No public branch',), 'merge-directive', '--diff',
77
 
                           '../tree2', retcode=3)
78
 
        md_text = self.run_bzr('merge-directive', '../tree2')[0]
 
75
        self.run_bzr_error(('No public branch',),
 
76
                           'merge-directive --diff ../tree2', retcode=3)
 
77
        md_text = self.run_bzr('merge-directive ../tree2')[0]
79
78
        self.assertNotContainsRe(md_text, 'source_branch:')
80
 
        self.run_bzr('merge-directive', '--diff', '../tree2', '.')
81
 
        self.run_bzr('merge-directive', '--diff')[0]
 
79
        self.run_bzr('merge-directive --diff ../tree2 .')
 
80
        self.run_bzr('merge-directive --diff')[0]
82
81
        self.assertNotContainsRe(md_text, 'source_branch:')
83
82
 
84
83
    def test_patch_types(self):
85
84
        self.prepare_merge_directive()
86
 
        md_text = self.run_bzr('merge-directive', '../tree2')[0]
 
85
        md_text = self.run_bzr('merge-directive ../tree2')[0]
87
86
        self.assertContainsRe(md_text, "# Begin bundle")
88
87
        self.assertContainsRe(md_text, "\\+e")
89
 
        md_text = self.run_bzr('merge-directive', '../tree2', '--diff', '.')[0]
 
88
        md_text = self.run_bzr('merge-directive ../tree2 --diff .')[0]
90
89
        self.assertNotContainsRe(md_text, "# Begin bundle")
91
90
        self.assertContainsRe(md_text, "\\+e")
92
 
        md_text = self.run_bzr('merge-directive', '--plain')[0]
 
91
        md_text = self.run_bzr('merge-directive --plain')[0]
93
92
        self.assertNotContainsRe(md_text, "\\+e")
94
93
 
95
94
    def test_message(self):
96
95
        self.prepare_merge_directive()
97
 
        md_text = self.run_bzr('merge-directive', '../tree2')[0]
 
96
        md_text = self.run_bzr('merge-directive ../tree2')[0]
98
97
        self.assertNotContainsRe(md_text, 'message: Message for merge')
99
 
        md_text = self.run_bzr('merge-directive', '-m', 'Message for merge')[0]
100
 
        self.assertContainsRe(md_text, 'message: Message for merge')
 
98
        md_text = self.run_bzr('merge-directive -m Message_for_merge')[0]
 
99
        self.assertContainsRe(md_text, 'message: Message_for_merge')
101
100
 
102
101
    def test_signing(self):
103
102
        self.prepare_merge_directive()
104
103
        old_strategy = gpg.GPGStrategy
105
104
        gpg.GPGStrategy = gpg.LoopbackGPGStrategy
106
105
        try:
107
 
            md_text = self.run_bzr('merge-directive', '--sign', '../tree2')[0]
 
106
            md_text = self.run_bzr('merge-directive --sign ../tree2')[0]
108
107
        finally:
109
108
            gpg.GPGStrategy = old_strategy
110
109
        self.assertContainsRe(md_text, '^-----BEGIN PSEUDO-SIGNED CONTENT')
135
134
    def test_mail_default(self):
136
135
        tree1, tree2 = self.prepare_merge_directive()
137
136
        md_text, errr, connect_calls, sendmail_calls =\
138
 
            self.run_bzr_fakemail('merge-directive', '--mail-to',
139
 
                                  'pqm@example.com', '--plain', '../tree2',
140
 
                                  '.')
 
137
            self.run_bzr_fakemail(['merge-directive', '--mail-to',
 
138
                                   'pqm@example.com', '--plain', '../tree2',
 
139
                                   '.'])
141
140
        self.assertEqual('', md_text)
142
141
        self.assertEqual(1, len(connect_calls))
143
142
        call = connect_calls[0]
151
150
    def test_pull_raw(self):
152
151
        self.prepare_merge_directive()
153
152
        self.tree1.commit('baz', rev_id='baz-id')
154
 
        md_text = self.run_bzr('merge-directive', self.tree2.basedir,
155
 
                               '-r', '2', self.tree1.basedir, '--plain')[0]
 
153
        md_text = self.run_bzr(['merge-directive', self.tree2.basedir,
 
154
                                '-r', '2', self.tree1.basedir, '--plain'])[0]
156
155
        self.build_tree_contents([('../directive', md_text)])
157
156
        os.chdir('../tree2')
158
 
        self.run_bzr('pull', '../directive')
 
157
        self.run_bzr('pull ../directive')
159
158
        wt = workingtree.WorkingTree.open('.')
160
159
        self.assertEqual('bar-id', wt.last_revision())
161
160
 
163
162
        """If the user supplies -r, an error is emitted"""
164
163
        self.prepare_merge_directive()
165
164
        self.tree1.commit('baz', rev_id='baz-id')
166
 
        md_text = self.run_bzr('merge-directive', self.tree2.basedir,
167
 
                               self.tree1.basedir, '--plain')[0]
 
165
        md_text = self.run_bzr(['merge-directive', self.tree2.basedir,
 
166
                                self.tree1.basedir, '--plain'])[0]
168
167
        self.build_tree_contents([('../directive', md_text)])
169
168
        os.chdir('../tree2')
170
169
        self.run_bzr_error(
171
170
            ('Cannot use -r with merge directives or bundles',),
172
 
            'pull', '-r', '2', '../directive')
 
171
            'pull -r 2 ../directive')
173
172
 
174
173
    def test_pull_bundle(self):
175
174
        self.prepare_merge_directive()
176
175
        self.tree1.commit('baz', rev_id='baz-id')
177
 
        md_text = self.run_bzr('merge-directive', self.tree2.basedir,
178
 
                               '-r', '2', '/dev/null', '--bundle')[0]
 
176
        md_text = self.run_bzr(['merge-directive', self.tree2.basedir,
 
177
                                '-r', '2', '/dev/null', '--bundle'])[0]
179
178
        self.build_tree_contents([('../directive', md_text)])
180
179
        os.chdir('../tree2')
181
 
        self.run_bzr('pull', '../directive')
 
180
        self.run_bzr('pull ../directive')
182
181
        wt = workingtree.WorkingTree.open('.')
183
182
        self.assertEqual('bar-id', wt.last_revision())
184
183
 
185
184
    def test_merge_raw(self):
186
185
        self.prepare_merge_directive()
187
186
        self.tree1.commit('baz', rev_id='baz-id')
188
 
        md_text = self.run_bzr('merge-directive', self.tree2.basedir,
189
 
                               '-r', '2', self.tree1.basedir, '--plain')[0]
 
187
        md_text = self.run_bzr(['merge-directive', self.tree2.basedir,
 
188
                                '-r', '2', self.tree1.basedir, '--plain'])[0]
190
189
        self.build_tree_contents([('../directive', md_text)])
191
190
        os.chdir('../tree2')
192
 
        self.run_bzr('merge', '../directive')
 
191
        self.run_bzr('merge ../directive')
193
192
        wt = workingtree.WorkingTree.open('.')
194
193
        self.assertEqual('bar-id', wt.get_parent_ids()[1])
195
194
 
197
196
        """If the user supplies -r, an error is emitted"""
198
197
        self.prepare_merge_directive()
199
198
        self.tree1.commit('baz', rev_id='baz-id')
200
 
        md_text = self.run_bzr('merge-directive', self.tree2.basedir,
201
 
                               self.tree1.basedir, '--plain')[0]
 
199
        md_text = self.run_bzr(['merge-directive', self.tree2.basedir,
 
200
                                self.tree1.basedir, '--plain'])[0]
202
201
        self.build_tree_contents([('../directive', md_text)])
203
202
        os.chdir('../tree2')
204
203
        self.run_bzr_error(
205
204
            ('Cannot use -r with merge directives or bundles',),
206
 
            'merge', '-r', '2', '../directive')
 
205
            'merge -r 2 ../directive')
207
206
 
208
207
    def test_merge_bundle(self):
209
208
        self.prepare_merge_directive()
210
209
        self.tree1.commit('baz', rev_id='baz-id')
211
 
        md_text = self.run_bzr('merge-directive', self.tree2.basedir,
212
 
                               '-r', '2', '/dev/null', '--bundle')[0]
 
210
        md_text = self.run_bzr(['merge-directive', self.tree2.basedir,
 
211
                               '-r', '2', '/dev/null', '--bundle'])[0]
213
212
        self.build_tree_contents([('../directive', md_text)])
214
213
        os.chdir('../tree2')
215
 
        self.run_bzr('merge', '../directive')
 
214
        self.run_bzr('merge ../directive')
216
215
        wt = workingtree.WorkingTree.open('.')
217
216
        self.assertEqual('bar-id', wt.get_parent_ids()[1])
218
217
 
220
219
        tree1, tree2 = self.prepare_merge_directive()
221
220
        tree1.branch.get_config().set_user_option('smtp_server', 'bogushost')
222
221
        md_text, errr, connect_calls, sendmail_calls =\
223
 
            self.run_bzr_fakemail('merge-directive', '--mail-to',
224
 
                                  'pqm@example.com', '--plain', '../tree2',
225
 
                                  '.')
 
222
            self.run_bzr_fakemail('merge-directive --mail-to'
 
223
                                  ' pqm@example.com --plain ../tree2 .')
226
224
        call = connect_calls[0]
227
225
        self.assertEqual(('bogushost', 0), call[1:3])
228
226
 
231
229
        foo.commit('rev1')
232
230
        bar = self.make_branch_and_tree('bar')
233
231
        os.chdir('foo')
234
 
        self.run_bzr('merge-directive', '../bar')
 
232
        self.run_bzr('merge-directive ../bar')
235
233
 
236
234
    def test_no_commits(self):
237
235
        foo = self.make_branch_and_tree('foo')
238
236
        bar = self.make_branch_and_tree('bar')
239
237
        os.chdir('foo')
240
238
        self.run_bzr_error(('No revisions to bundle.', ),
241
 
                            'merge-directive', '../bar')
 
239
                            'merge-directive ../bar')
242
240
 
243
241
    def test_encoding_exact(self):
244
242
        tree1, tree2 = self.prepare_merge_directive()
245
243
        tree1.commit(u'messag\xe9')
246
 
        self.run_bzr('merge-directive', '../tree2') # no exception raised
 
244
        self.run_bzr('merge-directive ../tree2') # no exception raised