~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/blackbox.py

  • Committer: aaron.bentley at utoronto
  • Date: 2005-08-21 00:08:08 UTC
  • mto: (1092.1.41) (1185.3.4)
  • mto: This revision was merged to the branch mainline in revision 1110.
  • Revision ID: aaron.bentley@utoronto.ca-20050821000808-2a0e6ef95b1bca59
Changed copy_multi to permit failure and return a tuple, tested missing required revisions

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
it's normally invoked.
27
27
"""
28
28
 
29
 
# this code was previously in testbzr
 
29
import sys
30
30
 
31
 
from unittest import TestCase
32
 
from bzrlib.selftest import TestBase, InTempDir
 
31
from bzrlib.selftest import TestBase, InTempDir, BzrTestBase
33
32
 
34
33
 
35
34
 
50
49
 
51
50
 
52
51
 
53
 
class TestVersion(ExternalBase):
 
52
class MvCommand(BzrTestBase):
 
53
    def runbzr(self):
 
54
        """Test two modes of operation for mv"""
 
55
        b = Branch('.', init=True)
 
56
        self.build_tree(['a', 'c', 'subdir/'])
 
57
        self.run_bzr('mv', 'a', 'b')
 
58
        self.run_bzr('mv', 'b', 'subdir')
 
59
        self.run_bzr('mv', 'subdir/b', 'a')
 
60
        self.run_bzr('mv', 'a', 'b', 'subdir')
 
61
        self.run_bzr('mv', 'subdir/a', 'subdir/newa')
 
62
 
 
63
 
 
64
 
 
65
class TestVersion(BzrTestBase):
 
66
    """Check output from version command and master option is reasonable"""
54
67
    def runTest(self):
55
68
        # output is intentionally passed through to stdout so that we
56
69
        # can see the version being tested
57
 
        self.runbzr(['version'])
58
 
 
 
70
        from cStringIO import StringIO
 
71
        save_out = sys.stdout
 
72
        try:
 
73
            sys.stdout = tmp_out = StringIO()
 
74
            
 
75
            self.run_bzr('version')
 
76
        finally:
 
77
            sys.stdout = save_out
 
78
 
 
79
        output = tmp_out.getvalue()
 
80
        self.log('bzr version output:')
 
81
        self.log(output)
 
82
        
 
83
        self.assert_(output.startswith('bzr (bazaar-ng) '))
 
84
        self.assertNotEqual(output.index('Canonical'), -1)
 
85
 
 
86
        # make sure --version is consistent
 
87
        try:
 
88
            sys.stdout = tmp_out = StringIO()
 
89
            
 
90
            self.run_bzr('--version')
 
91
        finally:
 
92
            sys.stdout = save_out
 
93
 
 
94
        self.log('bzr --version output:')
 
95
        self.log(tmp_out.getvalue())
 
96
 
 
97
        self.assertEquals(output, tmp_out.getvalue())
 
98
 
 
99
 
 
100
        
59
101
 
60
102
 
61
103
class HelpCommands(ExternalBase):
312
354
 
313
355
 
314
356
 
315
 
        chdir('..')
316
 
        chdir('..')
317
 
        progress('branch')
318
 
        assert os.path.exists('branch1')
319
 
        assert not os.path.exists('branch2')
320
 
        # Can't create a branch if it already exists
321
 
        runbzr('branch branch1', retcode=1)
322
 
        # Can't create a branch if its parent doesn't exist
323
 
        runbzr('branch /unlikely/to/exist', retcode=1)
324
 
        runbzr('branch branch1 branch2')
325
 
        assert exists('branch2')
326
 
        assert exists('branch2/sub1')
327
 
        assert exists('branch2/sub1/hello.txt')
328
 
        
329
 
        runbzr('branch --revision 0 branch1 branch3')
330
 
        assert not exists('branch3/sub1/hello.txt')
331
 
        runbzr('branch --revision 0..3 branch1 branch4', retcode=1)
332
 
 
333
 
        progress("pull")
334
 
        chdir('branch1')
335
 
        runbzr('pull', retcode=1)
336
 
        runbzr('pull ../branch2')
337
 
        chdir('.bzr')
338
 
        runbzr('pull')
339
 
        runbzr('commit --unchanged -m empty')
340
 
        runbzr('pull')
341
 
        chdir('../../branch2')
342
 
        runbzr('pull')
343
 
        runbzr('commit --unchanged -m empty')
344
 
        chdir('../branch1')
345
 
        runbzr('commit --unchanged -m empty')
346
 
        runbzr('pull', retcode=1)
347
 
        chdir ('..')
348
 
 
349
 
        progress('status after remove')
350
 
        mkdir('status-after-remove')
351
 
        # see mail from William Dodé, 2005-05-25
352
 
        # $ bzr init; touch a; bzr add a; bzr commit -m "add a"
353
 
        #     * looking for changes...
354
 
        #     added a
355
 
        #     * commited r1
356
 
        #     $ bzr remove a
357
 
        #     $ bzr status
358
 
        #     bzr: local variable 'kind' referenced before assignment
359
 
        #     at /vrac/python/bazaar-ng/bzrlib/diff.py:286 in compare_trees()
360
 
        #     see ~/.bzr.log for debug information
361
 
        chdir('status-after-remove')
362
 
        runbzr('init')
363
 
        file('a', 'w').write('foo')
364
 
        runbzr('add a')
365
 
        runbzr(['commit', '-m', 'add a'])
366
 
        runbzr('remove a')
367
 
        runbzr('status')
368
 
 
369
 
        chdir('..')
370
 
 
371
 
 
372
 
 
373
 
        progress("recursive and non-recursive add")
374
 
        mkdir('no-recurse')
375
 
        chdir('no-recurse')
376
 
        runbzr('init')
377
 
        mkdir('foo')
378
 
        fp = os.path.join('foo', 'test.txt')
379
 
        f = file(fp, 'w')
380
 
        f.write('hello!\n')
381
 
        f.close()
382
 
        runbzr('add --no-recurse foo')
383
 
        runbzr('file-id foo')
384
 
        runbzr('file-id ' + fp, 1)      # not versioned yet
385
 
        runbzr('commit -m add-dir-only')
386
 
 
387
 
        self.runbzr('file-id ' + fp, 1)      # still not versioned 
388
 
 
389
 
        self.runbzr('add foo')
390
 
        self.runbzr('file-id ' + fp)
391
 
        self.runbzr('commit -m add-sub-file')
392
 
 
393
 
        chdir('..')
394
 
 
395
 
 
396
 
 
397
357
class RevertCommand(ExternalBase):
398
358
    def runTest(self):
399
359
        self.runbzr('init')
401
361
        file('hello', 'wt').write('foo')
402
362
        self.runbzr('add hello')
403
363
        self.runbzr('commit -m setup hello')
 
364
 
 
365
        file('goodbye', 'wt').write('baz')
 
366
        self.runbzr('add goodbye')
 
367
        self.runbzr('commit -m setup goodbye')
404
368
        
405
369
        file('hello', 'wt').write('bar')
 
370
        file('goodbye', 'wt').write('qux')
406
371
        self.runbzr('revert hello')
407
372
        self.check_file_contents('hello', 'foo')
 
373
        self.check_file_contents('goodbye', 'qux')
 
374
        self.runbzr('revert')
 
375
        self.check_file_contents('goodbye', 'baz')
408
376