/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 breezy/tests/blackbox/test_revno.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-03 23:54:50 UTC
  • mto: (7027.4.10 python3-blackbox)
  • mto: This revision was merged to the branch mainline in revision 7029.
  • Revision ID: jelmer@jelmer.uk-20180703235450-p10v67yhkzsebucd
Port fastimport to python3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2009 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007, 2009, 2011, 2012, 2016 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
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
 
18
 
"""Black-box tests for bzr revno.
 
18
"""Black-box tests for brz revno.
19
19
"""
20
20
 
21
21
import os
22
22
 
23
 
from bzrlib import tests
 
23
from breezy import tests
 
24
from breezy.tests.matchers import ContainsNoVfsCalls
 
25
 
24
26
 
25
27
class TestRevno(tests.TestCaseWithTransport):
26
28
 
32
34
        os.mkdir('a')
33
35
        os.chdir('a')
34
36
        bzr('init')
35
 
        self.assertEquals(int(bzr('revno')), 0)
 
37
        self.assertEqual(int(bzr('revno')), 0)
36
38
 
37
 
        open('foo', 'wb').write('foo\n')
 
39
        with open('foo', 'wb') as f: f.write(b'foo\n')
38
40
        bzr('add foo')
39
41
        bzr('commit -m foo')
40
 
        self.assertEquals(int(bzr('revno')), 1)
 
42
        self.assertEqual(int(bzr('revno')), 1)
41
43
 
42
44
        os.mkdir('baz')
43
45
        bzr('add baz')
44
46
        bzr('commit -m baz')
45
 
        self.assertEquals(int(bzr('revno')), 2)
 
47
        self.assertEqual(int(bzr('revno')), 2)
46
48
 
47
49
        os.chdir('..')
48
 
        self.assertEquals(int(bzr('revno a')), 2)
49
 
        self.assertEquals(int(bzr('revno a/baz')), 2)
 
50
        self.assertEqual(int(bzr('revno a')), 2)
 
51
        self.assertEqual(int(bzr('revno a/baz')), 2)
50
52
 
51
53
    def test_revno_tree(self):
52
54
        # Make branch and checkout
59
61
        wt.commit('mkfile')
60
62
 
61
63
        # Make sure revno says we're on 1
62
 
        out,err = self.run_bzr('revno checkout')
63
 
        self.assertEqual('', err)
64
 
        self.assertEqual('1\n', out)
 
64
        out, err = self.run_bzr('revno checkout')
 
65
        self.assertEqual(b'', err)
 
66
        self.assertEqual(b'1\n', out)
65
67
 
66
68
        # Make sure --tree knows it's still on 0
67
 
        out,err = self.run_bzr('revno --tree checkout')
68
 
        self.assertEqual('', err)
69
 
        self.assertEqual('0\n', out)
 
69
        out, err = self.run_bzr('revno --tree checkout')
 
70
        self.assertEqual(b'', err)
 
71
        self.assertEqual(b'0\n', out)
70
72
 
71
73
    def test_revno_tree_no_tree(self):
72
74
        # Make treeless branch
73
75
        b = self.make_branch('branch')
74
76
 
75
77
        # Try getting it's --tree revno
76
 
        out,err = self.run_bzr('revno --tree branch', retcode=3)
77
 
        self.assertEqual('', out)
78
 
        self.assertEqual('bzr: ERROR: No WorkingTree exists for "branch".\n',
 
78
        out, err = self.run_bzr('revno --tree branch', retcode=3)
 
79
        self.assertEqual(b'', out)
 
80
        self.assertEqual(b'brz: ERROR: No WorkingTree exists for "branch".\n',
79
81
            err)
80
82
 
81
83
    def test_dotted_revno_tree(self):
82
84
        builder = self.make_branch_builder('branch')
83
85
        builder.start_series()
84
 
        builder.build_snapshot('A-id', None, [
85
 
            ('add', ('', 'root-id', 'directory', None)),
86
 
            ('add', ('file', 'file-id', 'file', 'content\n'))])
87
 
        builder.build_snapshot('B-id', ['A-id'], [])
88
 
        builder.build_snapshot('C-id', ['A-id', 'B-id'], [])
 
86
        builder.build_snapshot(None, [
 
87
            ('add', ('', b'root-id', 'directory', None)),
 
88
            ('add', ('file', b'file-id', 'file', b'content\n'))],
 
89
            revision_id=b'A-id')
 
90
        builder.build_snapshot([b'A-id'], [], revision_id=b'B-id')
 
91
        builder.build_snapshot([b'A-id', b'B-id'], [], revision_id=b'C-id')
89
92
        builder.finish_series()
90
93
        b = builder.get_branch()
91
94
        co_b = b.create_checkout('checkout_b', lightweight=True,
92
 
                                 revision_id='B-id')
 
95
                                 revision_id=b'B-id')
93
96
        out, err = self.run_bzr('revno checkout_b')
94
 
        self.assertEqual('', err)
95
 
        self.assertEqual('2\n', out)
 
97
        self.assertEqual(b'', err)
 
98
        self.assertEqual(b'2\n', out)
96
99
        out, err = self.run_bzr('revno --tree checkout_b')
97
 
        self.assertEqual('', err)
98
 
        self.assertEqual('1.1.1\n', out)
 
100
        self.assertEqual(b'', err)
 
101
        self.assertEqual(b'1.1.1\n', out)
99
102
 
100
103
    def test_stale_revno_tree(self):
101
104
        builder = self.make_branch_builder('branch')
102
105
        builder.start_series()
103
 
        builder.build_snapshot('A-id', None, [
104
 
            ('add', ('', 'root-id', 'directory', None)),
105
 
            ('add', ('file', 'file-id', 'file', 'content\n'))])
106
 
        builder.build_snapshot('B-id', ['A-id'], [])
107
 
        builder.build_snapshot('C-id', ['A-id'], [])
 
106
        builder.build_snapshot(None, [
 
107
            ('add', ('', b'root-id', 'directory', None)),
 
108
            ('add', ('file', b'file-id', 'file', b'content\n'))],
 
109
            revision_id=b'A-id')
 
110
        builder.build_snapshot([b'A-id'], [], revision_id=b'B-id')
 
111
        builder.build_snapshot([b'A-id'], [], revision_id=b'C-id')
108
112
        builder.finish_series()
109
113
        b = builder.get_branch()
110
114
        # The branch is now at "C-id", but the checkout is still at "B-id"
111
115
        # which is no longer in the history
112
116
        co_b = b.create_checkout('checkout_b', lightweight=True,
113
 
                                 revision_id='B-id')
 
117
                                 revision_id=b'B-id')
114
118
        out, err = self.run_bzr('revno checkout_b')
115
 
        self.assertEqual('', err)
116
 
        self.assertEqual('2\n', out)
 
119
        self.assertEqual(b'', err)
 
120
        self.assertEqual(b'2\n', out)
117
121
        out, err = self.run_bzr('revno --tree checkout_b')
118
 
        self.assertEqual('', err)
119
 
        self.assertEqual('???\n', out)
 
122
        self.assertEqual(b'', err)
 
123
        self.assertEqual(b'???\n', out)
 
124
 
 
125
    def test_revno_with_revision(self):
 
126
        wt = self.make_branch_and_tree('.')
 
127
        revid1 = wt.commit('rev1')
 
128
        revid2 = wt.commit('rev2')
 
129
 
 
130
        out, err = self.run_bzr('revno -r-2 .')
 
131
        self.assertEqual(b'1\n', out)
 
132
 
 
133
        out, err = self.run_bzr('revno -rrevid:%s .' % revid1)
 
134
        self.assertEqual(b'1\n', out)
 
135
 
 
136
    def test_revno_and_tree_mutually_exclusive(self):
 
137
        wt = self.make_branch_and_tree('.')
 
138
        out, err = self.run_bzr('revno -r-2 --tree .', retcode=3)
 
139
        self.assertEqual(b'', out)
 
140
        self.assertEqual(
 
141
            b'brz: ERROR: --tree and --revision can not be used together\n',
 
142
            err)
 
143
 
 
144
 
 
145
class TestSmartServerRevno(tests.TestCaseWithTransport):
 
146
 
 
147
    def test_simple_branch_revno(self):
 
148
        self.setup_smart_server_with_call_log()
 
149
        t = self.make_branch_and_tree('branch')
 
150
        self.build_tree_contents([('branch/foo', b'thecontents')])
 
151
        t.add("foo")
 
152
        revid = t.commit("message")
 
153
        self.reset_smart_call_log()
 
154
        out, err = self.run_bzr(['revno', self.get_url('branch')])
 
155
        # This figure represent the amount of work to perform this use case. It
 
156
        # is entirely ok to reduce this number if a test fails due to rpc_count
 
157
        # being too low. If rpc_count increases, more network roundtrips have
 
158
        # become necessary for this use case. Please do not adjust this number
 
159
        # upwards without agreement from bzr's network support maintainers.
 
160
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)
 
161
        self.assertLength(1, self.hpss_connections)
 
162
        self.assertLength(6, self.hpss_calls)
 
163
 
 
164
    def test_simple_branch_revno_lookup(self):
 
165
        self.setup_smart_server_with_call_log()
 
166
        t = self.make_branch_and_tree('branch')
 
167
        self.build_tree_contents([('branch/foo', b'thecontents')])
 
168
        t.add("foo")
 
169
        revid1 = t.commit("message")
 
170
        revid2 = t.commit("message")
 
171
        self.reset_smart_call_log()
 
172
        out, err = self.run_bzr(['revno', '-rrevid:' + revid1,
 
173
            self.get_url('branch')])
 
174
        # This figure represent the amount of work to perform this use case. It
 
175
        # is entirely ok to reduce this number if a test fails due to rpc_count
 
176
        # being too low. If rpc_count increases, more network roundtrips have
 
177
        # become necessary for this use case. Please do not adjust this number
 
178
        # upwards without agreement from bzr's network support maintainers.
 
179
        self.assertLength(5, self.hpss_calls)
 
180
        self.assertLength(1, self.hpss_connections)
 
181
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)