~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_cat.py

  • Committer: Vincent Ladeuil
  • Date: 2012-01-05 13:02:31 UTC
  • mto: This revision was merged to the branch mainline in revision 6434.
  • Revision ID: v.ladeuil+lp@free.fr-20120105130231-grtl31ovy72doqp9
Cleanup old blackbox tests and then some. Remove os.chdir() calls, caught a few bugs, make sure we don't leave file handles opened.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2011 Canonical Ltd
 
1
# Copyright (C) 2005-2012 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
18
18
"""Black-box tests for bzr cat.
19
19
"""
20
20
 
21
 
import os
22
 
 
23
21
from bzrlib import tests
24
22
from bzrlib.tests.matchers import ContainsNoVfsCalls
25
23
from bzrlib.transport import memory
31
29
        tree = self.make_branch_and_tree('branch')
32
30
        self.build_tree_contents([('branch/a', 'foo\n')])
33
31
        tree.add('a')
34
 
        os.chdir('branch')
35
32
        # 'bzr cat' without an option should cat the last revision
36
 
        self.run_bzr(['cat', 'a'], retcode=3)
 
33
        self.run_bzr(['cat', 'a'], retcode=3, working_dir='branch')
37
34
 
38
35
        tree.commit(message='1')
39
 
        self.build_tree_contents([('a', 'baz\n')])
 
36
        self.build_tree_contents([('branch/a', 'baz\n')])
40
37
 
41
 
        self.assertEquals(self.run_bzr(['cat', 'a'])[0], 'foo\n')
 
38
        self.assertEquals('foo\n',
 
39
                          self.run_bzr(['cat', 'a'], working_dir='branch')[0])
42
40
 
43
41
        # On Windows, we used to have a bug where newlines got changed into
44
42
        # crlf, whereas cat ought to write out the file exactly as it's
45
43
        # recorded (by default.)  That problem can't be reproduced in-process,
46
44
        # so we need just one test here that 
47
 
        self.assertEquals(self.run_bzr_subprocess(['cat', 'a'])[0], 'foo\n')
 
45
        self.assertEquals('foo\n',
 
46
                          self.run_bzr_subprocess(['cat', 'a'],
 
47
                                                  working_dir='branch')[0])
48
48
 
49
49
        tree.commit(message='2')
50
 
        self.assertEquals(self.run_bzr(['cat', 'a'])[0], 'baz\n')
51
 
        self.assertEquals(self.run_bzr(
52
 
            ['cat', 'a', '-r', '1'])[0],
53
 
            'foo\n')
54
 
        self.assertEquals(self.run_bzr(
55
 
            ['cat', 'a', '-r', '-1'])[0],
56
 
            'baz\n')
 
50
        self.assertEquals(
 
51
            'baz\n', self.run_bzr(['cat', 'a'], working_dir='branch')[0])
 
52
        self.assertEquals(
 
53
            'foo\n', self.run_bzr(['cat', 'a', '-r', '1'],
 
54
                                  working_dir='branch')[0])
 
55
        self.assertEquals(
 
56
            'baz\n', self.run_bzr(['cat', 'a', '-r', '-1'],
 
57
                                  working_dir='branch')[0])
57
58
 
58
59
        rev_id = tree.branch.last_revision()
59
60
 
60
 
        self.assertEquals(self.run_bzr(
61
 
            ['cat', 'a', '-r', 'revid:%s' % rev_id])[0],
62
 
            'baz\n')
63
 
 
64
 
        os.chdir('..')
65
 
 
66
 
        self.assertEquals(self.run_bzr(
67
 
            ['cat', 'branch/a', '-r', 'revno:1:branch'])[0],
68
 
            'foo\n')
 
61
        self.assertEquals(
 
62
            'baz\n', self.run_bzr(['cat', 'a', '-r', 'revid:%s' % rev_id],
 
63
                                  working_dir='branch')[0])
 
64
 
 
65
        self.assertEquals('foo\n',
 
66
                          self.run_bzr(['cat', 'branch/a',
 
67
                                        '-r', 'revno:1:branch'])[0])
69
68
        self.run_bzr(['cat', 'a'], retcode=3)
70
 
        self.run_bzr(
71
 
                ['cat', 'a', '-r', 'revno:1:branch-that-does-not-exist'],
72
 
                retcode=3)
 
69
        self.run_bzr(['cat', 'a', '-r', 'revno:1:branch-that-does-not-exist'],
 
70
                     retcode=3)
73
71
 
74
72
    def test_cat_different_id(self):
75
73
        """'cat' works with old and new files"""
138
136
        wt.add('README')
139
137
        wt.commit('Making sure there is a basis_tree available')
140
138
        wt = self.make_branch_and_tree('b')
141
 
        os.chdir('b')
142
139
 
143
 
        out, err = self.run_bzr(
144
 
            ['cat', '-r', 'branch:../a', 'README'])
 
140
        out, err = self.run_bzr(['cat', '-r', 'branch:../a', 'README'],
 
141
                                working_dir='b')
145
142
        self.assertEqual('contents of a/README\n', out)
146
143
 
147
144
    def test_cat_filters(self):