/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
720 by Martin Pool
- start moving external tests into the testsuite framework
1
# Copyright (C) 2005 by Canonical Ltd
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
2
# -*- coding: utf-8 -*-
720 by Martin Pool
- start moving external tests into the testsuite framework
3
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18
19
"""Black-box tests for bzr.
20
21
These check that it behaves properly when it's invoked through the regular
22
command-line interface.
725 by Martin Pool
doc
23
24
This always reinvokes bzr through a new Python interpreter, which is a
25
bit inefficient but arguably tests in a way more representative of how
26
it's normally invoked.
720 by Martin Pool
- start moving external tests into the testsuite framework
27
"""
28
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
29
import sys
974.1.71 by Aaron Bentley
Added test for pull
30
import os
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
31
1141 by Martin Pool
- rename FunctionalTest to TestCaseInTempDir
32
from bzrlib.selftest import TestCaseInTempDir, BzrTestBase
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
33
from bzrlib.branch import Branch
34
from bzrlib.commands import run_bzr
35
898 by Martin Pool
- add new runbzr method for external tests
36
1141 by Martin Pool
- rename FunctionalTest to TestCaseInTempDir
37
class ExternalBase(TestCaseInTempDir):
1074 by Martin Pool
- check for email address in BRANCH_ROOT/.bzr/email, so you can
38
    def runbzr(self, args, retcode=0,backtick=False):
898 by Martin Pool
- add new runbzr method for external tests
39
        if isinstance(args, basestring):
40
            args = args.split()
1074 by Martin Pool
- check for email address in BRANCH_ROOT/.bzr/email, so you can
41
42
        if backtick:
43
            return self.backtick(['python', self.BZRPATH,] + args,
44
                           retcode=retcode)
45
        else:
46
            return self.runcmd(['python', self.BZRPATH,] + args,
904 by Martin Pool
- more selftest external-command fixes
47
                           retcode=retcode)
48
1142 by Martin Pool
- remove dead code from blackbox tests (pychecker)
49
1102 by Martin Pool
- merge test refactoring from robertc
50
class TestCommands(ExternalBase):
51
52
    def test_help_commands(self):
898 by Martin Pool
- add new runbzr method for external tests
53
        self.runbzr('--help')
54
        self.runbzr('help')
55
        self.runbzr('help commands')
56
        self.runbzr('help help')
57
        self.runbzr('commit -h')
727 by Martin Pool
- move more code to run external commands from testbzr to selftest
58
1102 by Martin Pool
- merge test refactoring from robertc
59
    def test_init_branch(self):
898 by Martin Pool
- add new runbzr method for external tests
60
        self.runbzr(['init'])
732 by Martin Pool
- move more tests into bzr selftest
61
1102 by Martin Pool
- merge test refactoring from robertc
62
    def test_whoami(self):
732 by Martin Pool
- move more tests into bzr selftest
63
        # this should always identify something, if only "john@localhost"
898 by Martin Pool
- add new runbzr method for external tests
64
        self.runbzr("whoami")
65
        self.runbzr("whoami --email")
1074 by Martin Pool
- check for email address in BRANCH_ROOT/.bzr/email, so you can
66
67
        self.assertEquals(self.runbzr("whoami --email",
68
                                      backtick=True).count('@'), 1)
69
        
1102 by Martin Pool
- merge test refactoring from robertc
70
    def test_whoami_branch(self):
71
        """branch specific user identity works."""
1074 by Martin Pool
- check for email address in BRANCH_ROOT/.bzr/email, so you can
72
        self.runbzr('init')
73
        f = file('.bzr/email', 'wt')
74
        f.write('Branch Identity <branch@identi.ty>')
75
        f.close()
76
        whoami = self.runbzr("whoami",backtick=True)
77
        whoami_email = self.runbzr("whoami --email",backtick=True)
78
        self.assertTrue(whoami.startswith('Branch Identity <branch@identi.ty>'))
79
        self.assertTrue(whoami_email.startswith('branch@identi.ty'))
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
80
1102 by Martin Pool
- merge test refactoring from robertc
81
    def test_invalid_commands(self):
898 by Martin Pool
- add new runbzr method for external tests
82
        self.runbzr("pants", retcode=1)
83
        self.runbzr("--pants off", retcode=1)
84
        self.runbzr("diff --message foo", retcode=1)
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
85
1102 by Martin Pool
- merge test refactoring from robertc
86
    def test_empty_commit(self):
898 by Martin Pool
- add new runbzr method for external tests
87
        self.runbzr("init")
885 by Martin Pool
- commit command refuses unless something is changed or --unchanged is given
88
        self.build_tree(['hello.txt'])
898 by Martin Pool
- add new runbzr method for external tests
89
        self.runbzr("commit -m empty", retcode=1)
90
        self.runbzr("add hello.txt")
91
        self.runbzr("commit -m added")
885 by Martin Pool
- commit command refuses unless something is changed or --unchanged is given
92
1102 by Martin Pool
- merge test refactoring from robertc
93
    def test_ignore_patterns(self):
906 by Martin Pool
- split out black-box ignore commands
94
        from bzrlib.branch import Branch
95
        
1185.2.9 by Lalo Martins
getting rid of everything that calls the Branch constructor directly
96
        b = Branch.initialize('.')
906 by Martin Pool
- split out black-box ignore commands
97
        self.assertEquals(list(b.unknowns()), [])
98
99
        file('foo.tmp', 'wt').write('tmp files are ignored')
100
        self.assertEquals(list(b.unknowns()), [])
101
        assert self.backtick('bzr unknowns') == ''
102
103
        file('foo.c', 'wt').write('int main() {}')
104
        self.assertEquals(list(b.unknowns()), ['foo.c'])
105
        assert self.backtick('bzr unknowns') == 'foo.c\n'
106
107
        self.runbzr(['add', 'foo.c'])
108
        assert self.backtick('bzr unknowns') == ''
109
110
        # 'ignore' works when creating the .bzignore file
111
        file('foo.blah', 'wt').write('blah')
112
        self.assertEquals(list(b.unknowns()), ['foo.blah'])
113
        self.runbzr('ignore *.blah')
114
        self.assertEquals(list(b.unknowns()), [])
115
        assert file('.bzrignore', 'rb').read() == '*.blah\n'
116
117
        # 'ignore' works when then .bzrignore file already exists
118
        file('garh', 'wt').write('garh')
119
        self.assertEquals(list(b.unknowns()), ['garh'])
120
        assert self.backtick('bzr unknowns') == 'garh\n'
121
        self.runbzr('ignore garh')
122
        self.assertEquals(list(b.unknowns()), [])
123
        assert file('.bzrignore', 'rb').read() == '*.blah\ngarh\n'
1102 by Martin Pool
- merge test refactoring from robertc
124
125
    def test_revert(self):
126
        self.runbzr('init')
127
128
        file('hello', 'wt').write('foo')
129
        self.runbzr('add hello')
130
        self.runbzr('commit -m setup hello')
131
132
        file('goodbye', 'wt').write('baz')
133
        self.runbzr('add goodbye')
134
        self.runbzr('commit -m setup goodbye')
1092.1.14 by Robert Collins
relace runTest with test_foo in blackbox tests
135
        
1102 by Martin Pool
- merge test refactoring from robertc
136
        file('hello', 'wt').write('bar')
137
        file('goodbye', 'wt').write('qux')
138
        self.runbzr('revert hello')
139
        self.check_file_contents('hello', 'foo')
140
        self.check_file_contents('goodbye', 'qux')
141
        self.runbzr('revert')
142
        self.check_file_contents('goodbye', 'baz')
143
144
        os.mkdir('revertdir')
145
        self.runbzr('add revertdir')
146
        self.runbzr('commit -m f')
147
        os.rmdir('revertdir')
148
        self.runbzr('revert')
149
1185.1.8 by Robert Collins
David Clymers patch to use rename rather than mv for two argument non-directory target bzr mv calls.
150
    def test_mv_modes(self):
1102 by Martin Pool
- merge test refactoring from robertc
151
        """Test two modes of operation for mv"""
152
        from bzrlib.branch import Branch
1185.2.9 by Lalo Martins
getting rid of everything that calls the Branch constructor directly
153
        b = Branch.initialize('.')
1102 by Martin Pool
- merge test refactoring from robertc
154
        self.build_tree(['a', 'c', 'subdir/'])
1185.1.8 by Robert Collins
David Clymers patch to use rename rather than mv for two argument non-directory target bzr mv calls.
155
        self.run_bzr('add', self.test_dir)
1102 by Martin Pool
- merge test refactoring from robertc
156
        self.run_bzr('mv', 'a', 'b')
157
        self.run_bzr('mv', 'b', 'subdir')
158
        self.run_bzr('mv', 'subdir/b', 'a')
1185.1.8 by Robert Collins
David Clymers patch to use rename rather than mv for two argument non-directory target bzr mv calls.
159
        self.run_bzr('mv', 'a', 'c', 'subdir')
1102 by Martin Pool
- merge test refactoring from robertc
160
        self.run_bzr('mv', 'subdir/a', 'subdir/newa')
161
1185.1.8 by Robert Collins
David Clymers patch to use rename rather than mv for two argument non-directory target bzr mv calls.
162
1102 by Martin Pool
- merge test refactoring from robertc
163
    def test_main_version(self):
164
        """Check output from version command and master option is reasonable"""
165
        # output is intentionally passed through to stdout so that we
166
        # can see the version being tested
167
        output = self.runbzr('version', backtick=1)
168
        self.log('bzr version output:')
169
        self.log(output)
170
        self.assert_(output.startswith('bzr (bazaar-ng) '))
171
        self.assertNotEqual(output.index('Canonical'), -1)
172
        # make sure --version is consistent
173
        tmp_output = self.runbzr('--version', backtick=1)
174
        self.log('bzr --version output:')
175
        self.log(tmp_output)
176
        self.assertEquals(output, tmp_output)
906 by Martin Pool
- split out black-box ignore commands
177
1092.1.39 by Robert Collins
merge from mpool
178
    def example_branch(test):
179
        test.runbzr('init')
180
        file('hello', 'wt').write('foo')
181
        test.runbzr('add hello')
182
        test.runbzr('commit -m setup hello')
183
        file('goodbye', 'wt').write('baz')
184
        test.runbzr('add goodbye')
185
        test.runbzr('commit -m setup goodbye')
186
187
    def test_revert(self):
188
        self.example_branch()
189
        file('hello', 'wt').write('bar')
190
        file('goodbye', 'wt').write('qux')
191
        self.runbzr('revert hello')
192
        self.check_file_contents('hello', 'foo')
193
        self.check_file_contents('goodbye', 'qux')
194
        self.runbzr('revert')
195
        self.check_file_contents('goodbye', 'baz')
196
197
    def test_merge(self):
198
        from bzrlib.branch import Branch
1139 by Martin Pool
- merge in merge improvements and additional tests
199
        
1092.1.39 by Robert Collins
merge from mpool
200
        os.mkdir('a')
201
        os.chdir('a')
202
        self.example_branch()
203
        os.chdir('..')
204
        self.runbzr('branch a b')
205
        os.chdir('b')
206
        file('goodbye', 'wt').write('quux')
207
        self.runbzr(['commit',  '-m',  "more u's are always good"])
208
209
        os.chdir('../a')
210
        file('hello', 'wt').write('quuux')
211
        # We can't merge when there are in-tree changes
212
        self.runbzr('merge ../b', retcode=1)
213
        self.runbzr(['commit', '-m', "Like an epidemic of u's"])
214
        self.runbzr('merge ../b')
215
        self.check_file_contents('goodbye', 'quux')
216
        # Merging a branch pulls its revision into the tree
1185.2.9 by Lalo Martins
getting rid of everything that calls the Branch constructor directly
217
        a = Branch.open('.')
218
        b = Branch.open('../b')
1092.1.39 by Robert Collins
merge from mpool
219
        a.get_revision_xml(b.last_patch())
1139 by Martin Pool
- merge in merge improvements and additional tests
220
        self.log('pending merges: %s', a.pending_merges())
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
221
        #        assert a.pending_merges() == [b.last_patch()], "Assertion %s %s" \
222
        #        % (a.pending_merges(), b.last_patch())
223
974.1.71 by Aaron Bentley
Added test for pull
224
    def test_pull(self):
225
        """Pull changes from one branch to another."""
226
        os.mkdir('a')
227
        os.chdir('a')
228
229
        self.example_branch()
974.1.79 by Aaron Bentley
Fixed issues with pull not having a default location after branch
230
        self.runbzr('pull', retcode=1)
231
        self.runbzr('missing', retcode=1)
232
        self.runbzr('missing .')
233
        self.runbzr('missing')
234
        self.runbzr('pull')
235
        self.runbzr('pull /', retcode=1)
236
        self.runbzr('pull')
237
974.1.71 by Aaron Bentley
Added test for pull
238
        os.chdir('..')
239
        self.runbzr('branch a b')
240
        os.chdir('b')
974.1.79 by Aaron Bentley
Fixed issues with pull not having a default location after branch
241
        self.runbzr('pull')
974.1.71 by Aaron Bentley
Added test for pull
242
        self.runbzr('commit -m blah --unchanged')
243
        os.chdir('../a')
1185.2.16 by Lalo Martins
fixing a few tests that came on the merge, for the new constructors
244
        a = Branch.open('.')
245
        b = Branch.open('../b')
974.1.71 by Aaron Bentley
Added test for pull
246
        assert a.revision_history() == b.revision_history()[:-1]
247
        self.runbzr('pull ../b')
248
        assert a.revision_history() == b.revision_history()
249
        self.runbzr('commit -m blah2 --unchanged')
250
        os.chdir('../b')
251
        self.runbzr('commit -m blah3 --unchanged')
252
        self.runbzr('pull ../a', retcode=1)
974.1.74 by Aaron Bentley
Made pull work after remote branch has merged latest revision
253
        os.chdir('../a')
254
        self.runbzr('merge ../b')
255
        self.runbzr('commit -m blah4 --unchanged')
256
        os.chdir('../b')
257
        self.runbzr('pull ../a')
258
        assert a.revision_history()[-1] == b.revision_history()[-1]
259
        
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
260
261
    def test_add_reports(self):
262
        """add command prints the names of added files."""
1185.2.9 by Lalo Martins
getting rid of everything that calls the Branch constructor directly
263
        b = Branch.initialize('.')
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
264
        self.build_tree(['top.txt', 'dir/', 'dir/sub.txt'])
265
266
        from cStringIO import StringIO
267
        out = StringIO()
268
269
        ret = self.apply_redirected(None, out, None,
270
                                    run_bzr,
271
                                    ['add'])
272
        self.assertEquals(ret, 0)
273
274
        # the ordering is not defined at the moment
275
        results = sorted(out.getvalue().rstrip('\n').split('\n'))
276
        self.assertEquals(['added dir',
277
                           'added dir/sub.txt',
278
                           'added top.txt',],
279
                          results)
280
1092.1.39 by Robert Collins
merge from mpool
281
904 by Martin Pool
- more selftest external-command fixes
282
class OldTests(ExternalBase):
1092.1.39 by Robert Collins
merge from mpool
283
    """old tests moved from ./testbzr."""
284
1102 by Martin Pool
- merge test refactoring from robertc
285
    def test_bzr(self):
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
286
        from os import chdir, mkdir
287
        from os.path import exists
288
904 by Martin Pool
- more selftest external-command fixes
289
        runbzr = self.runbzr
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
290
        backtick = self.backtick
291
        progress = self.log
292
293
        progress("basic branch creation")
904 by Martin Pool
- more selftest external-command fixes
294
        mkdir('branch1')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
295
        chdir('branch1')
898 by Martin Pool
- add new runbzr method for external tests
296
        runbzr('init')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
297
298
        self.assertEquals(backtick('bzr root').rstrip(),
299
                          os.path.join(self.test_dir, 'branch1'))
300
301
        progress("status of new file")
302
303
        f = file('test.txt', 'wt')
304
        f.write('hello world!\n')
305
        f.close()
306
307
        out = backtick("bzr unknowns")
780 by Martin Pool
- test message improvement
308
        self.assertEquals(out, 'test.txt\n')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
309
310
        out = backtick("bzr status")
311
        assert out == 'unknown:\n  test.txt\n'
312
313
        out = backtick("bzr status --all")
314
        assert out == "unknown:\n  test.txt\n"
315
316
        out = backtick("bzr status test.txt --all")
317
        assert out == "unknown:\n  test.txt\n"
318
319
        f = file('test2.txt', 'wt')
320
        f.write('goodbye cruel world...\n')
321
        f.close()
322
323
        out = backtick("bzr status test.txt")
324
        assert out == "unknown:\n  test.txt\n"
325
326
        out = backtick("bzr status")
327
        assert out == ("unknown:\n"
328
                       "  test.txt\n"
329
                       "  test2.txt\n")
330
331
        os.unlink('test2.txt')
332
333
        progress("command aliases")
334
        out = backtick("bzr st --all")
335
        assert out == ("unknown:\n"
336
                       "  test.txt\n")
337
338
        out = backtick("bzr stat")
339
        assert out == ("unknown:\n"
340
                       "  test.txt\n")
341
342
        progress("command help")
898 by Martin Pool
- add new runbzr method for external tests
343
        runbzr("help st")
344
        runbzr("help")
345
        runbzr("help commands")
346
        runbzr("help slartibartfast", 1)
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
347
348
        out = backtick("bzr help ci")
349
        out.index('aliases: ')
350
351
        progress("can't rename unversioned file")
898 by Martin Pool
- add new runbzr method for external tests
352
        runbzr("rename test.txt new-test.txt", 1)
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
353
354
        progress("adding a file")
355
898 by Martin Pool
- add new runbzr method for external tests
356
        runbzr("add test.txt")
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
357
        assert backtick("bzr unknowns") == ''
358
        assert backtick("bzr status --all") == ("added:\n"
359
                                                "  test.txt\n")
360
361
        progress("rename newly-added file")
898 by Martin Pool
- add new runbzr method for external tests
362
        runbzr("rename test.txt hello.txt")
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
363
        assert os.path.exists("hello.txt")
364
        assert not os.path.exists("test.txt")
365
366
        assert backtick("bzr revno") == '0\n'
367
368
        progress("add first revision")
904 by Martin Pool
- more selftest external-command fixes
369
        runbzr(['commit', '-m', 'add first revision'])
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
370
371
        progress("more complex renames")
372
        os.mkdir("sub1")
898 by Martin Pool
- add new runbzr method for external tests
373
        runbzr("rename hello.txt sub1", 1)
374
        runbzr("rename hello.txt sub1/hello.txt", 1)
375
        runbzr("move hello.txt sub1", 1)
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
376
898 by Martin Pool
- add new runbzr method for external tests
377
        runbzr("add sub1")
378
        runbzr("rename sub1 sub2")
379
        runbzr("move hello.txt sub2")
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
380
        assert backtick("bzr relpath sub2/hello.txt") == os.path.join("sub2", "hello.txt\n")
381
382
        assert exists("sub2")
383
        assert exists("sub2/hello.txt")
384
        assert not exists("sub1")
385
        assert not exists("hello.txt")
386
898 by Martin Pool
- add new runbzr method for external tests
387
        runbzr(['commit', '-m', 'commit with some things moved to subdirs'])
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
388
389
        mkdir("sub1")
898 by Martin Pool
- add new runbzr method for external tests
390
        runbzr('add sub1')
391
        runbzr('move sub2/hello.txt sub1')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
392
        assert not exists('sub2/hello.txt')
393
        assert exists('sub1/hello.txt')
898 by Martin Pool
- add new runbzr method for external tests
394
        runbzr('move sub2 sub1')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
395
        assert not exists('sub2')
396
        assert exists('sub1/sub2')
397
898 by Martin Pool
- add new runbzr method for external tests
398
        runbzr(['commit', '-m', 'rename nested subdirectories'])
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
399
400
        chdir('sub1/sub2')
401
        self.assertEquals(backtick('bzr root')[:-1],
402
                          os.path.join(self.test_dir, 'branch1'))
898 by Martin Pool
- add new runbzr method for external tests
403
        runbzr('move ../hello.txt .')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
404
        assert exists('./hello.txt')
405
        assert backtick('bzr relpath hello.txt') == os.path.join('sub1', 'sub2', 'hello.txt\n')
406
        assert backtick('bzr relpath ../../sub1/sub2/hello.txt') == os.path.join('sub1', 'sub2', 'hello.txt\n')
898 by Martin Pool
- add new runbzr method for external tests
407
        runbzr(['commit', '-m', 'move to parent directory'])
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
408
        chdir('..')
409
        assert backtick('bzr relpath sub2/hello.txt') == os.path.join('sub1', 'sub2', 'hello.txt\n')
410
898 by Martin Pool
- add new runbzr method for external tests
411
        runbzr('move sub2/hello.txt .')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
412
        assert exists('hello.txt')
413
414
        f = file('hello.txt', 'wt')
415
        f.write('some nice new content\n')
416
        f.close()
417
418
        f = file('msg.tmp', 'wt')
419
        f.write('this is my new commit\n')
420
        f.close()
421
898 by Martin Pool
- add new runbzr method for external tests
422
        runbzr('commit -F msg.tmp')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
423
424
        assert backtick('bzr revno') == '5\n'
898 by Martin Pool
- add new runbzr method for external tests
425
        runbzr('export -r 5 export-5.tmp')
426
        runbzr('export export.tmp')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
427
898 by Martin Pool
- add new runbzr method for external tests
428
        runbzr('log')
429
        runbzr('log -v')
909.1.5 by Aaron Bentley
Fixed log -v (mostly)
430
        runbzr('log -v --forward')
431
        runbzr('log -m', retcode=1)
432
        log_out = backtick('bzr log -m commit')
433
        assert "this is my new commit" in log_out
434
        assert "rename nested" not in log_out
435
        assert 'revision-id' not in log_out
436
        assert 'revision-id' in backtick('bzr log --show-ids -m commit')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
437
438
439
        progress("file with spaces in name")
440
        mkdir('sub directory')
441
        file('sub directory/file with spaces ', 'wt').write('see how this works\n')
898 by Martin Pool
- add new runbzr method for external tests
442
        runbzr('add .')
443
        runbzr('diff')
444
        runbzr('commit -m add-spaces')
445
        runbzr('check')
446
447
        runbzr('log')
448
        runbzr('log --forward')
449
450
        runbzr('info')
1092.1.35 by Robert Collins
merge from mpool up to rev 1110
451