~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Jelmer Vernooij
  • Date: 2012-01-23 19:08:05 UTC
  • mfrom: (6437.3.20 2.5)
  • mto: This revision was merged to the branch mainline in revision 6450.
  • Revision ID: jelmer@samba.org-20120123190805-hlcuihkt2dep44cw
merge bzr 2.5.

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
 
22
from bzrlib.tests.matchers import ContainsNoVfsCalls
24
23
from bzrlib.transport import memory
25
24
 
26
25
 
30
29
        tree = self.make_branch_and_tree('branch')
31
30
        self.build_tree_contents([('branch/a', 'foo\n')])
32
31
        tree.add('a')
33
 
        os.chdir('branch')
34
32
        # 'bzr cat' without an option should cat the last revision
35
 
        self.run_bzr(['cat', 'a'], retcode=3)
 
33
        self.run_bzr(['cat', 'a'], retcode=3, working_dir='branch')
36
34
 
37
35
        tree.commit(message='1')
38
 
        self.build_tree_contents([('a', 'baz\n')])
 
36
        self.build_tree_contents([('branch/a', 'baz\n')])
39
37
 
40
 
        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])
41
40
 
42
41
        # On Windows, we used to have a bug where newlines got changed into
43
42
        # crlf, whereas cat ought to write out the file exactly as it's
44
43
        # recorded (by default.)  That problem can't be reproduced in-process,
45
44
        # so we need just one test here that 
46
 
        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])
47
48
 
48
49
        tree.commit(message='2')
49
 
        self.assertEquals(self.run_bzr(['cat', 'a'])[0], 'baz\n')
50
 
        self.assertEquals(self.run_bzr(
51
 
            ['cat', 'a', '-r', '1'])[0],
52
 
            'foo\n')
53
 
        self.assertEquals(self.run_bzr(
54
 
            ['cat', 'a', '-r', '-1'])[0],
55
 
            '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])
56
58
 
57
59
        rev_id = tree.branch.last_revision()
58
60
 
59
 
        self.assertEquals(self.run_bzr(
60
 
            ['cat', 'a', '-r', 'revid:%s' % rev_id])[0],
61
 
            'baz\n')
62
 
 
63
 
        os.chdir('..')
64
 
 
65
 
        self.assertEquals(self.run_bzr(
66
 
            ['cat', 'branch/a', '-r', 'revno:1:branch'])[0],
67
 
            '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])
68
68
        self.run_bzr(['cat', 'a'], retcode=3)
69
 
        self.run_bzr(
70
 
                ['cat', 'a', '-r', 'revno:1:branch-that-does-not-exist'],
71
 
                retcode=3)
 
69
        self.run_bzr(['cat', 'a', '-r', 'revno:1:branch-that-does-not-exist'],
 
70
                     retcode=3)
72
71
 
73
72
    def test_cat_different_id(self):
74
73
        """'cat' works with old and new files"""
137
136
        wt.add('README')
138
137
        wt.commit('Making sure there is a basis_tree available')
139
138
        wt = self.make_branch_and_tree('b')
140
 
        os.chdir('b')
141
139
 
142
 
        out, err = self.run_bzr(
143
 
            ['cat', '-r', 'branch:../a', 'README'])
 
140
        out, err = self.run_bzr(['cat', '-r', 'branch:../a', 'README'],
 
141
                                working_dir='b')
144
142
        self.assertEqual('contents of a/README\n', out)
145
143
 
146
144
    def test_cat_filters(self):
238
236
        # being too low. If rpc_count increases, more network roundtrips have
239
237
        # become necessary for this use case. Please do not adjust this number
240
238
        # upwards without agreement from bzr's network support maintainers.
241
 
        self.assertLength(16, self.hpss_calls)
 
239
        self.assertLength(9, self.hpss_calls)
 
240
        self.assertLength(1, self.hpss_connections)
 
241
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)