/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 brzlib/tests/blackbox/test_cat.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-21 12:41:27 UTC
  • mto: This revision was merged to the branch mainline in revision 6623.
  • Revision ID: jelmer@jelmer.uk-20170521124127-iv8etg0vwymyai6y
s/bzr/brz/ in apport config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
 
18
 
"""Black-box tests for brz cat.
 
18
"""Black-box tests for bzr cat.
19
19
"""
20
20
 
21
 
from ... import tests
22
 
from ..matchers import ContainsNoVfsCalls
23
 
from ...transport import memory
 
21
from brzlib import tests
 
22
from brzlib.tests.matchers import ContainsNoVfsCalls
 
23
from brzlib.transport import memory
24
24
 
25
25
 
26
26
class TestCat(tests.TestCaseWithTransport):
27
27
 
28
28
    def test_cat(self):
29
29
        tree = self.make_branch_and_tree('branch')
30
 
        self.build_tree_contents([('branch/a', b'foo\n')])
 
30
        self.build_tree_contents([('branch/a', 'foo\n')])
31
31
        tree.add('a')
32
 
        # 'brz cat' without an option should cat the last revision
 
32
        # 'bzr cat' without an option should cat the last revision
33
33
        self.run_bzr(['cat', 'a'], retcode=3, working_dir='branch')
34
34
 
35
35
        tree.commit(message='1')
36
 
        self.build_tree_contents([('branch/a', b'baz\n')])
 
36
        self.build_tree_contents([('branch/a', 'baz\n')])
37
37
 
38
38
        self.assertEqual('foo\n',
39
 
                         self.run_bzr(['cat', 'a'], working_dir='branch')[0])
 
39
                          self.run_bzr(['cat', 'a'], working_dir='branch')[0])
40
40
 
41
41
        # On Windows, we used to have a bug where newlines got changed into
42
42
        # crlf, whereas cat ought to write out the file exactly as it's
43
43
        # recorded (by default.)  That problem can't be reproduced in-process,
44
 
        # so we need just one test here that
45
 
        self.assertEqual(b'foo\n',
46
 
                         self.run_bzr_subprocess(['cat', 'a'],
47
 
                                                 working_dir='branch')[0])
 
44
        # so we need just one test here that 
 
45
        self.assertEqual('foo\n',
 
46
                          self.run_bzr_subprocess(['cat', 'a'],
 
47
                                                  working_dir='branch')[0])
48
48
 
49
49
        tree.commit(message='2')
50
50
        self.assertEqual(
59
59
        rev_id = tree.branch.last_revision()
60
60
 
61
61
        self.assertEqual(
62
 
            'baz\n', self.run_bzr(
63
 
                ['cat', 'a', '-r', 'revid:%s' % rev_id.decode('utf-8')],
64
 
                working_dir='branch')[0])
 
62
            'baz\n', self.run_bzr(['cat', 'a', '-r', 'revid:%s' % rev_id],
 
63
                                  working_dir='branch')[0])
65
64
 
66
65
        self.assertEqual('foo\n',
67
 
                         self.run_bzr(['cat', 'branch/a',
68
 
                                       '-r', 'revno:1:branch'])[0])
 
66
                          self.run_bzr(['cat', 'branch/a',
 
67
                                        '-r', 'revno:1:branch'])[0])
69
68
        self.run_bzr(['cat', 'a'], retcode=3)
70
69
        self.run_bzr(['cat', 'a', '-r', 'revno:1:branch-that-does-not-exist'],
71
70
                     retcode=3)
78
77
        # current trees later in the test case
79
78
        # a-rev-tree is special because it appears in both the revision
80
79
        # tree and the working tree
81
 
        self.build_tree_contents([('a-rev-tree', b'foo\n'),
82
 
                                  ('c-rev', b'baz\n'), ('d-rev', b'bar\n'), ('e-rev', b'qux\n')])
83
 
        with tree.lock_write():
 
80
        self.build_tree_contents([('a-rev-tree', 'foo\n'),
 
81
            ('c-rev', 'baz\n'), ('d-rev', 'bar\n'), ('e-rev', 'qux\n')])
 
82
        tree.lock_write()
 
83
        try:
84
84
            tree.add(['a-rev-tree', 'c-rev', 'd-rev', 'e-rev'])
85
 
            tree.commit('add test files', rev_id=b'first')
 
85
            tree.commit('add test files', rev_id='first')
86
86
            # remove currently uses self._write_inventory -
87
87
            # work around that for now.
88
88
            tree.flush()
90
90
            tree.rename_one('a-rev-tree', 'b-tree')
91
91
            tree.rename_one('c-rev', 'a-rev-tree')
92
92
            tree.rename_one('e-rev', 'old-rev')
93
 
            self.build_tree_contents([('e-rev', b'new\n')])
 
93
            self.build_tree_contents([('e-rev', 'new\n')])
94
94
            tree.add(['e-rev'])
 
95
        finally:
 
96
            # calling bzr as another process require free lock on win32
 
97
            tree.unlock()
95
98
 
96
99
        # 'b-tree' is not present in the old tree.
97
 
        self.run_bzr_error(["^brz: ERROR: u?'b-tree' "
 
100
        self.run_bzr_error(["^bzr: ERROR: u?'b-tree' "
98
101
                            "is not present in revision .+$"],
99
102
                           'cat b-tree --name-from-revision')
100
103
 
101
104
        # get to the old file automatically
102
105
        out, err = self.run_bzr('cat d-rev')
103
 
        self.assertEqual('', err)
104
106
        self.assertEqual('bar\n', out)
 
107
        self.assertEqual('', err)
105
108
 
106
109
        out, err = \
107
 
            self.run_bzr('cat a-rev-tree --name-from-revision')
 
110
                self.run_bzr('cat a-rev-tree --name-from-revision')
108
111
        self.assertEqual('foo\n', out)
109
112
        self.assertEqual('', err)
110
113
 
158
161
        # subprocess because we really need to patch in a plugin that
159
162
        # registers the filters. Instead, we patch in a custom
160
163
        # filter_stack and use run_bzr() ...
161
 
        from ..test_filters import _stack_2
162
 
        from ...tree import Tree
 
164
        from cStringIO import StringIO
 
165
        from brzlib.commands import run_bzr
 
166
        from brzlib.tests.test_filters import _stack_2
 
167
        from brzlib.trace import mutter
 
168
        from brzlib.tree import Tree
163
169
        wt = self.make_branch_and_tree('.')
164
170
        self.build_tree_contents([
165
 
            ('README', b"junk\nline 1 of README\nline 2 of README\n"),
 
171
            ('README', "junk\nline 1 of README\nline 2 of README\n"),
166
172
            ])
167
173
        wt.add('README')
168
174
        wt.commit('Making sure there is a basis_tree available')
169
175
        url = self.get_readonly_url() + '/README'
170
176
        real_content_filter_stack = Tree._content_filter_stack
171
 
 
172
177
        def _custom_content_filter_stack(tree, path=None, file_id=None):
173
178
            return _stack_2
174
179
        Tree._content_filter_stack = _custom_content_filter_stack
185
190
        self.build_tree(['README'])
186
191
        wt.add('README')
187
192
        wt.commit('Making sure there is a basis_tree available')
188
 
        wt.branch.controldir.destroy_workingtree()
 
193
        wt.branch.bzrdir.destroy_workingtree()
189
194
 
190
195
        url = self.get_readonly_url() + '/README'
191
196
        out, err = self.run_bzr(['cat', url])
193
198
 
194
199
    def test_cat_nonexistent_branch(self):
195
200
        self.vfs_transport_factory = memory.MemoryServer
196
 
        self.run_bzr_error(['^brz: ERROR: Not a branch'],
 
201
        self.run_bzr_error(['^bzr: ERROR: Not a branch'],
197
202
                           ['cat', self.get_url()])
198
203
 
199
204
    def test_cat_directory(self):
221
226
    def test_simple_branch_cat(self):
222
227
        self.setup_smart_server_with_call_log()
223
228
        t = self.make_branch_and_tree('branch')
224
 
        self.build_tree_contents([('branch/foo', b'thecontents')])
 
229
        self.build_tree_contents([('branch/foo', 'thecontents')])
225
230
        t.add("foo")
226
231
        t.commit("message")
227
232
        self.reset_smart_call_log()