/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
1
# Copyright (C) 2005, 2007 Canonical Ltd
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
2
#
720 by Martin Pool
- start moving external tests into the testsuite framework
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
7
#
720 by Martin Pool
- start moving external tests into the testsuite framework
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
12
#
720 by Martin Pool
- start moving external tests into the testsuite framework
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
720 by Martin Pool
- start moving external tests into the testsuite framework
16
1185.46.9 by Aaron Bentley
Added verbose option to bzr add, to list all ignored files.
17
# Mr. Smoketoomuch: I'm sorry?
18
# Mr. Bounder: You'd better cut down a little then.
19
# Mr. Smoketoomuch: Oh, I see! Smoke too much so I'd better cut down a little
20
#                   then!
720 by Martin Pool
- start moving external tests into the testsuite framework
21
22
"""Black-box tests for bzr.
23
24
These check that it behaves properly when it's invoked through the regular
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
25
command-line interface. This doesn't actually run a new interpreter but
1393.1.45 by Martin Pool
doc
26
rather starts again from the run_bzr function.
720 by Martin Pool
- start moving external tests into the testsuite framework
27
"""
28
1393.1.45 by Martin Pool
doc
29
1185.33.14 by Martin Pool
doc
30
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
31
# Note: Please don't add new tests here, it's too big and bulky.  Instead add
1512 by Robert Collins
Merge from Martin. Adjust check to work with HTTP again.
32
# them into small suites in bzrlib.tests.blackbox.test_FOO for the particular
33
# UI command/aspect that is being tested.
1185.33.14 by Martin Pool
doc
34
35
1185.1.25 by Robert Collins
merge David Clymer's patch for TestCaseInTestDir.runcmd
36
from cStringIO import StringIO
1185.1.41 by Robert Collins
massive patch from Alexander Belchenko - many PEP8 fixes, removes unused function uuid
37
import os
1185.16.43 by Martin Pool
- clean up handling of option objects
38
import re
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
39
import sys
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
40
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
41
import bzrlib
1996.3.18 by John Arbash Meinel
Now that mkdtemp and rmtree are lazy, they should not be directly improted.
42
from bzrlib import (
43
    osutils,
44
    )
1161 by Martin Pool
- add test that 'bzr add' reports the files as they're added
45
from bzrlib.branch import Branch
1393.3.3 by Jelmer Vernooij
Add test for empty commit messages.
46
from bzrlib.errors import BzrCommandError
1692.3.5 by Robert Collins
Merge integration, fixing test failure in test_too_much due to terminal width changing.
47
from bzrlib.osutils import (
48
    has_symlinks,
49
    pathjoin,
50
    terminal_width,
51
    )
2929.3.8 by Vincent Ladeuil
Rename bzrlib/test/HTTPTestUtils.py to bzrlib/tests/http_utils.py and fix uses.
52
from bzrlib.tests.http_utils import TestCaseWithWebserver
1530.1.7 by Robert Collins
merge integration.
53
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
1513 by Robert Collins
Blackbox tests are maintained within the bzrlib.tests.blackbox directory.
54
from bzrlib.tests.blackbox import ExternalBase
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
55
from bzrlib.workingtree import WorkingTree
1142 by Martin Pool
- remove dead code from blackbox tests (pychecker)
56
1185.65.29 by Robert Collins
Implement final review suggestions.
57
1102 by Martin Pool
- merge test refactoring from robertc
58
class TestCommands(ExternalBase):
59
60
    def test_invalid_commands(self):
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
61
        self.run_bzr("pants", retcode=3)
62
        self.run_bzr("--pants off", retcode=3)
63
        self.run_bzr("diff --message foo", retcode=3)
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
64
1102 by Martin Pool
- merge test refactoring from robertc
65
    def test_revert(self):
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
66
        self.run_bzr('init')
1102 by Martin Pool
- merge test refactoring from robertc
67
68
        file('hello', 'wt').write('foo')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
69
        self.run_bzr('add hello')
70
        self.run_bzr('commit -m setup hello')
1102 by Martin Pool
- merge test refactoring from robertc
71
72
        file('goodbye', 'wt').write('baz')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
73
        self.run_bzr('add goodbye')
74
        self.run_bzr('commit -m setup goodbye')
1092.2.18 by Robert Collins
merge from symlink branch
75
1102 by Martin Pool
- merge test refactoring from robertc
76
        file('hello', 'wt').write('bar')
77
        file('goodbye', 'wt').write('qux')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
78
        self.run_bzr('revert hello')
1102 by Martin Pool
- merge test refactoring from robertc
79
        self.check_file_contents('hello', 'foo')
80
        self.check_file_contents('goodbye', 'qux')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
81
        self.run_bzr('revert')
1102 by Martin Pool
- merge test refactoring from robertc
82
        self.check_file_contents('goodbye', 'baz')
83
84
        os.mkdir('revertdir')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
85
        self.run_bzr('add revertdir')
86
        self.run_bzr('commit -m f')
1102 by Martin Pool
- merge test refactoring from robertc
87
        os.rmdir('revertdir')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
88
        self.run_bzr('revert')
1102 by Martin Pool
- merge test refactoring from robertc
89
1185.31.49 by John Arbash Meinel
Some corrections using the new osutils.rename. **ALL TESTS PASS**
90
        if has_symlinks():
91
            os.symlink('/unlikely/to/exist', 'symlink')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
92
            self.run_bzr('add symlink')
93
            self.run_bzr('commit -m f')
1185.31.49 by John Arbash Meinel
Some corrections using the new osutils.rename. **ALL TESTS PASS**
94
            os.unlink('symlink')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
95
            self.run_bzr('revert')
1185.31.49 by John Arbash Meinel
Some corrections using the new osutils.rename. **ALL TESTS PASS**
96
            self.failUnlessExists('symlink')
97
            os.unlink('symlink')
98
            os.symlink('a-different-path', 'symlink')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
99
            self.run_bzr('revert')
1185.31.49 by John Arbash Meinel
Some corrections using the new osutils.rename. **ALL TESTS PASS**
100
            self.assertEqual('/unlikely/to/exist',
101
                             os.readlink('symlink'))
102
        else:
103
            self.log("skipping revert symlink tests")
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
104
1185.5.8 by John Arbash Meinel
Fixed bzr revert with the new RevisionSpec code.
105
        file('hello', 'wt').write('xyz')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
106
        self.run_bzr('commit -m xyz hello')
107
        self.run_bzr('revert -r 1 hello')
1185.5.8 by John Arbash Meinel
Fixed bzr revert with the new RevisionSpec code.
108
        self.check_file_contents('hello', 'foo')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
109
        self.run_bzr('revert hello')
1185.5.8 by John Arbash Meinel
Fixed bzr revert with the new RevisionSpec code.
110
        self.check_file_contents('hello', 'xyz')
1185.8.5 by Aaron Bentley
Fixed non-tree-root bug in branch, revert, merge
111
        os.chdir('revertdir')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
112
        self.run_bzr('revert')
1185.8.5 by Aaron Bentley
Fixed non-tree-root bug in branch, revert, merge
113
        os.chdir('..')
114
1092.1.39 by Robert Collins
merge from mpool
115
    def example_branch(test):
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
116
        test.run_bzr('init')
1092.1.39 by Robert Collins
merge from mpool
117
        file('hello', 'wt').write('foo')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
118
        test.run_bzr('add hello')
119
        test.run_bzr('commit -m setup hello')
1092.1.39 by Robert Collins
merge from mpool
120
        file('goodbye', 'wt').write('baz')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
121
        test.run_bzr('add goodbye')
122
        test.run_bzr('commit -m setup goodbye')
1092.1.39 by Robert Collins
merge from mpool
123
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
124
    def test_pull_verbose(self):
125
        """Pull changes from one branch to another and watch the output."""
126
127
        os.mkdir('a')
128
        os.chdir('a')
129
130
        self.example_branch()
131
132
        os.chdir('..')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
133
        self.run_bzr('branch a b')
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
134
        os.chdir('b')
135
        open('b', 'wb').write('else\n')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
136
        self.run_bzr('add b')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
137
        self.run_bzr(['commit', '-m', 'added b'])
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
138
139
        os.chdir('../a')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
140
        out = self.run_bzr('pull --verbose ../b')[0]
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
141
        self.failIfEqual(out.find('Added Revisions:'), -1)
142
        self.failIfEqual(out.find('message:\n  added b'), -1)
1185.33.27 by Martin Pool
[merge] much integrated work from robert and john
143
        self.failIfEqual(out.find('added b'), -1)
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
144
1185.32.4 by John Arbash Meinel
[merge] up-to-date against bzr.dev
145
        # Check that --overwrite --verbose prints out the removed entries
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
146
        self.run_bzr('commit -m foo --unchanged')
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
147
        os.chdir('../b')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
148
        self.run_bzr('commit -m baz --unchanged')
149
        self.run_bzr('pull ../a', retcode=3)
150
        out = self.run_bzr('pull --overwrite --verbose ../a')[0]
1185.32.2 by John Arbash Meinel
Refactor pull --verbose into a log.py function, add tests.
151
152
        remove_loc = out.find('Removed Revisions:')
153
        self.failIfEqual(remove_loc, -1)
154
        added_loc = out.find('Added Revisions:')
155
        self.failIfEqual(added_loc, -1)
156
157
        removed_message = out.find('message:\n  baz')
158
        self.failIfEqual(removed_message, -1)
159
        self.failUnless(remove_loc < removed_message < added_loc)
160
161
        added_message = out.find('message:\n  foo')
162
        self.failIfEqual(added_message, -1)
163
        self.failUnless(added_loc < added_message)
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
164
1185.12.11 by Aaron Bentley
Made pull only save the parent location if it is unset, or on --remember
165
    def test_locations(self):
166
        """Using and remembering different locations"""
167
        os.mkdir('a')
168
        os.chdir('a')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
169
        self.run_bzr('init')
170
        self.run_bzr('commit -m unchanged --unchanged')
171
        self.run_bzr('pull', retcode=3)
172
        self.run_bzr('merge', retcode=3)
173
        self.run_bzr('branch . ../b')
1185.12.11 by Aaron Bentley
Made pull only save the parent location if it is unset, or on --remember
174
        os.chdir('../b')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
175
        self.run_bzr('pull')
176
        self.run_bzr('branch . ../c')
177
        self.run_bzr('pull ../c')
178
        self.run_bzr('merge')
1185.12.11 by Aaron Bentley
Made pull only save the parent location if it is unset, or on --remember
179
        os.chdir('../a')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
180
        self.run_bzr('pull ../b')
181
        self.run_bzr('pull')
182
        self.run_bzr('pull ../c')
183
        self.run_bzr('branch ../c ../d')
1996.3.18 by John Arbash Meinel
Now that mkdtemp and rmtree are lazy, they should not be directly improted.
184
        osutils.rmtree('../c')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
185
        self.run_bzr('pull')
1185.12.11 by Aaron Bentley
Made pull only save the parent location if it is unset, or on --remember
186
        os.chdir('../b')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
187
        self.run_bzr('pull')
1185.12.11 by Aaron Bentley
Made pull only save the parent location if it is unset, or on --remember
188
        os.chdir('../d')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
189
        self.run_bzr('pull', retcode=3)
190
        self.run_bzr('pull ../a --remember')
191
        self.run_bzr('pull')
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
192
1185.3.20 by Martin Pool
- run_bzr_captured also includes logged errors in
193
    def test_unknown_command(self):
194
        """Handling of unknown command."""
2552.2.4 by Vincent Ladeuil
Merge bzr.dev and resolve conflits. (good use case for an enhanced merge
195
        out, err = self.run_bzr('fluffy-badger', retcode=3)
1185.3.20 by Martin Pool
- run_bzr_captured also includes logged errors in
196
        self.assertEquals(out, '')
197
        err.index('unknown command')
1185.14.9 by Aaron Bentley
Added tests for 'bzr conflicts', 'bzr resolve'
198
1185.35.4 by Aaron Bentley
Implemented remerge
199
    def create_conflicts(self):
200
        """Create a conflicted tree"""
1185.14.9 by Aaron Bentley
Added tests for 'bzr conflicts', 'bzr resolve'
201
        os.mkdir('base')
202
        os.chdir('base')
203
        file('hello', 'wb').write("hi world")
204
        file('answer', 'wb').write("42")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
205
        self.run_bzr('init')
206
        self.run_bzr('add')
207
        self.run_bzr('commit -m base')
208
        self.run_bzr('branch . ../other')
209
        self.run_bzr('branch . ../this')
1185.14.9 by Aaron Bentley
Added tests for 'bzr conflicts', 'bzr resolve'
210
        os.chdir('../other')
211
        file('hello', 'wb').write("Hello.")
212
        file('answer', 'wb').write("Is anyone there?")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
213
        self.run_bzr('commit -m other')
1185.14.9 by Aaron Bentley
Added tests for 'bzr conflicts', 'bzr resolve'
214
        os.chdir('../this')
215
        file('hello', 'wb').write("Hello, world")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
216
        self.run_bzr('mv answer question')
1185.14.9 by Aaron Bentley
Added tests for 'bzr conflicts', 'bzr resolve'
217
        file('question', 'wb').write("What do you get when you multiply six"
218
                                   "times nine?")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
219
        self.run_bzr('commit -m this')
1185.35.4 by Aaron Bentley
Implemented remerge
220
1185.65.6 by Aaron Bentley
Fixed inner merges in status
221
    def test_status(self):
222
        os.mkdir('branch1')
223
        os.chdir('branch1')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
224
        self.run_bzr('init')
225
        self.run_bzr('commit --unchanged --message f')
226
        self.run_bzr('branch . ../branch2')
227
        self.run_bzr('branch . ../branch3')
228
        self.run_bzr('commit --unchanged --message peter')
1185.65.6 by Aaron Bentley
Fixed inner merges in status
229
        os.chdir('../branch2')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
230
        self.run_bzr('merge ../branch1')
231
        self.run_bzr('commit --unchanged --message pumpkin')
1185.65.6 by Aaron Bentley
Fixed inner merges in status
232
        os.chdir('../branch3')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
233
        self.run_bzr('merge ../branch2')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
234
        message = self.run_bzr('status')[0]
1185.65.6 by Aaron Bentley
Fixed inner merges in status
235
1185.35.4 by Aaron Bentley
Implemented remerge
236
237
    def test_conflicts(self):
238
        """Handling of merge conflicts"""
239
        self.create_conflicts()
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
240
        self.run_bzr('merge ../other --show-base', retcode=1)
1185.18.1 by Aaron Bentley
Added --show-base to merge
241
        conflict_text = file('hello').read()
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
242
        self.assert_('<<<<<<<' in conflict_text)
243
        self.assert_('>>>>>>>' in conflict_text)
244
        self.assert_('=======' in conflict_text)
245
        self.assert_('|||||||' in conflict_text)
246
        self.assert_('hi world' in conflict_text)
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
247
        self.run_bzr('revert')
248
        self.run_bzr('resolve --all')
249
        self.run_bzr('merge ../other', retcode=1)
1185.18.1 by Aaron Bentley
Added --show-base to merge
250
        conflict_text = file('hello').read()
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
251
        self.assert_('|||||||' not in conflict_text)
252
        self.assert_('hi world' not in conflict_text)
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
253
        result = self.run_bzr('conflicts')[0]
1534.10.9 by Aaron Bentley
Switched display functions to conflict_lines
254
        self.assertEquals(result, "Text conflict in hello\nText conflict in"
255
                                  " question\n")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
256
        result = self.run_bzr('status')[0]
1534.10.9 by Aaron Bentley
Switched display functions to conflict_lines
257
        self.assert_("conflicts:\n  Text conflict in hello\n"
258
                     "  Text conflict in question\n" in result, result)
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
259
        self.run_bzr('resolve hello')
260
        result = self.run_bzr('conflicts')[0]
1534.10.9 by Aaron Bentley
Switched display functions to conflict_lines
261
        self.assertEquals(result, "Text conflict in question\n")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
262
        self.run_bzr('commit -m conflicts', retcode=3)
263
        self.run_bzr('resolve --all')
264
        result = self.run_bzr('conflicts')[0]
265
        self.run_bzr('commit -m conflicts')
1185.14.9 by Aaron Bentley
Added tests for 'bzr conflicts', 'bzr resolve'
266
        self.assertEquals(result, "")
1185.3.20 by Martin Pool
- run_bzr_captured also includes logged errors in
267
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
268
    def test_push(self):
269
        # create a source branch
270
        os.mkdir('my-branch')
271
        os.chdir('my-branch')
272
        self.example_branch()
273
274
        # with no push target, fail
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
275
        self.run_bzr('push', retcode=3)
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
276
        # with an explicit target work
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
277
        self.run_bzr('push ../output-branch')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
278
        # with an implicit target work
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
279
        self.run_bzr('push')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
280
        # nothing missing
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
281
        self.run_bzr('missing ../output-branch')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
282
        # advance this branch
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
283
        self.run_bzr('commit --unchanged -m unchanged')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
284
285
        os.chdir('../output-branch')
1185.50.6 by John Arbash Meinel
Fixed a broken test from my 'push updates local working tree' fix
286
        # There is no longer a difference as long as we have
287
        # access to the working tree
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
288
        self.run_bzr('diff')
1185.50.6 by John Arbash Meinel
Fixed a broken test from my 'push updates local working tree' fix
289
290
        # But we should be missing a revision
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
291
        self.run_bzr('missing ../my-branch', retcode=1)
1185.50.6 by John Arbash Meinel
Fixed a broken test from my 'push updates local working tree' fix
292
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
293
        # diverge the branches
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
294
        self.run_bzr('commit --unchanged -m unchanged')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
295
        os.chdir('../my-branch')
296
        # cannot push now
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
297
        self.run_bzr('push', retcode=3)
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
298
        # and there are difference
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
299
        self.run_bzr('missing ../output-branch', retcode=1)
300
        self.run_bzr('missing --verbose ../output-branch', retcode=1)
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
301
        # but we can force a push
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
302
        self.run_bzr('push --overwrite')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
303
        # nothing missing
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
304
        self.run_bzr('missing ../output-branch')
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
305
1495 by Robert Collins
Add a --create-prefix to the new push command.
306
        # pushing to a new dir with no parent should fail
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
307
        self.run_bzr('push ../missing/new-branch', retcode=3)
1495 by Robert Collins
Add a --create-prefix to the new push command.
308
        # unless we provide --create-prefix
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
309
        self.run_bzr('push --create-prefix ../missing/new-branch')
1495 by Robert Collins
Add a --create-prefix to the new push command.
310
        # nothing missing
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
311
        self.run_bzr('missing ../missing/new-branch')
1490 by Robert Collins
Implement a 'bzr push' command, with saved locations; update diff to return 1.
312
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
313
    def test_external_command(self):
1588.1.1 by Martin Pool
Supress "hello from test-command" noise from test_external_command
314
        """Test that external commands can be run by setting the path
315
        """
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
316
        # We don't at present run bzr in a subprocess for blackbox tests, and so
1588.1.1 by Martin Pool
Supress "hello from test-command" noise from test_external_command
317
        # don't really capture stdout, only the internal python stream.
318
        # Therefore we don't use a subcommand that produces any output or does
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
319
        # anything -- we just check that it can be run successfully.
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
320
        cmd_name = 'test-command'
321
        if sys.platform == 'win32':
322
            cmd_name += '.bat'
323
        oldpath = os.environ.get('BZRPATH', None)
324
        try:
1963.2.1 by Robey Pointer
remove usage of has_key()
325
            if 'BZRPATH' in os.environ:
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
326
                del os.environ['BZRPATH']
327
328
            f = file(cmd_name, 'wb')
329
            if sys.platform == 'win32':
330
                f.write('@echo off\n')
331
            else:
332
                f.write('#!/bin/sh\n')
1588.1.1 by Martin Pool
Supress "hello from test-command" noise from test_external_command
333
            # f.write('echo Hello from test-command')
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
334
            f.close()
335
            os.chmod(cmd_name, 0755)
336
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
337
            # It should not find the command in the local
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
338
            # directory by default, since it is not in my path
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
339
            self.run_bzr(cmd_name, retcode=3)
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
340
341
            # Now put it into my path
342
            os.environ['BZRPATH'] = '.'
343
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
344
            self.run_bzr(cmd_name)
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
345
346
            # Make sure empty path elements are ignored
347
            os.environ['BZRPATH'] = os.pathsep
348
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
349
            self.run_bzr(cmd_name, retcode=3)
1185.31.3 by John Arbash Meinel
Fix ExternalCommand to not run random files in the current directory, unless it is truly in BZRPATH
350
351
        finally:
352
            if oldpath:
353
                os.environ['BZRPATH'] = oldpath
354
355
1092.2.6 by Robert Collins
symlink support updated to work
356
def listdir_sorted(dir):
357
    L = os.listdir(dir)
358
    L.sort()
359
    return L
1185.3.20 by Martin Pool
- run_bzr_captured also includes logged errors in
360
1092.2.12 by Robert Collins
merge from HEAD
361
904 by Martin Pool
- more selftest external-command fixes
362
class OldTests(ExternalBase):
1092.1.39 by Robert Collins
merge from mpool
363
    """old tests moved from ./testbzr."""
364
1102 by Martin Pool
- merge test refactoring from robertc
365
    def test_bzr(self):
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
366
        from os import chdir, mkdir
367
        from os.path import exists
368
369
        progress = self.log
370
371
        progress("basic branch creation")
904 by Martin Pool
- more selftest external-command fixes
372
        mkdir('branch1')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
373
        chdir('branch1')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
374
        self.run_bzr('init')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
375
2823.1.6 by Vincent Ladeuil
Redo minor fix.
376
        self.assertIsSameRealPath(self.run_bzr('root')[0].rstrip(),
377
                                  pathjoin(self.test_dir, 'branch1'))
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
378
379
        progress("status of new file")
380
381
        f = file('test.txt', 'wt')
382
        f.write('hello world!\n')
383
        f.close()
384
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
385
        self.assertEquals(self.run_bzr('unknowns')[0], 'test.txt\n')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
386
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
387
        out = self.run_bzr("status")[0]
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
388
        self.assertEquals(out, 'unknown:\n  test.txt\n')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
389
390
        f = file('test2.txt', 'wt')
391
        f.write('goodbye cruel world...\n')
392
        f.close()
393
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
394
        out = self.run_bzr("status test.txt")[0]
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
395
        self.assertEquals(out, "unknown:\n  test.txt\n")
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
396
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
397
        out = self.run_bzr("status")[0]
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
398
        self.assertEquals(out, ("unknown:\n" "  test.txt\n" "  test2.txt\n"))
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
399
400
        os.unlink('test2.txt')
401
402
        progress("command aliases")
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
403
        out = self.run_bzr("st")[0]
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
404
        self.assertEquals(out, ("unknown:\n" "  test.txt\n"))
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
405
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
406
        out = self.run_bzr("stat")[0]
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
407
        self.assertEquals(out, ("unknown:\n" "  test.txt\n"))
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
408
409
        progress("command help")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
410
        self.run_bzr("help st")
411
        self.run_bzr("help")
412
        self.run_bzr("help commands")
413
        self.run_bzr("help slartibartfast", retcode=3)
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
414
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
415
        out = self.run_bzr("help ci")[0]
2666.1.1 by Ian Clatworthy
Bazaar User Reference generated from online help
416
        out.index('Aliases:  ci, checkin\n')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
417
418
        f = file('hello.txt', 'wt')
419
        f.write('some nice new content\n')
420
        f.close()
421
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
422
        self.run_bzr("add hello.txt")
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
423
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
424
        f = file('msg.tmp', 'wt')
1185.12.25 by Aaron Bentley
Added one-line log format
425
        f.write('this is my new commit\nand it has multiple lines, for fun')
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
426
        f.close()
427
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
428
        self.run_bzr('commit -F msg.tmp')
429
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
430
        self.assertEquals(self.run_bzr('revno')[0], '1\n')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
431
        self.run_bzr('export -r 1 export-1.tmp')
432
        self.run_bzr('export export.tmp')
433
434
        self.run_bzr('log')
435
        self.run_bzr('log -v')
436
        self.run_bzr('log -v --forward')
437
        self.run_bzr('log -m', retcode=3)
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
438
        log_out = self.run_bzr('log -m commit')[0]
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
439
        self.assert_("this is my new commit\n  and" in log_out)
440
        self.assert_("rename nested" not in log_out)
441
        self.assert_('revision-id' not in log_out)
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
442
        self.assert_('revision-id' in self.run_bzr('log --show-ids -m commit')[0])
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
443
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
444
        log_out = self.run_bzr('log --line')[0]
1692.3.5 by Robert Collins
Merge integration, fixing test failure in test_too_much due to terminal width changing.
445
        # determine the widest line we want
446
        max_width = terminal_width() - 1
1185.12.25 by Aaron Bentley
Added one-line log format
447
        for line in log_out.splitlines():
1692.3.5 by Robert Collins
Merge integration, fixing test failure in test_too_much due to terminal width changing.
448
            self.assert_(len(line) <= max_width, len(line))
1740.2.5 by Aaron Bentley
Merge from bzr.dev
449
        self.assert_("this is my new commit and" not in log_out)
450
        self.assert_("this is my new commit" in log_out)
1185.12.25 by Aaron Bentley
Added one-line log format
451
736 by Martin Pool
- move old blackbox code from testbzr into bzrlib.selftest.blackbox
452
        progress("file with spaces in name")
453
        mkdir('sub directory')
454
        file('sub directory/file with spaces ', 'wt').write('see how this works\n')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
455
        self.run_bzr('add .')
456
        self.run_bzr('diff', retcode=1)
457
        self.run_bzr('commit -m add-spaces')
458
        self.run_bzr('check')
459
460
        self.run_bzr('log')
461
        self.run_bzr('log --forward')
462
463
        self.run_bzr('info')
1092.1.35 by Robert Collins
merge from mpool up to rev 1110
464
1092.2.6 by Robert Collins
symlink support updated to work
465
        if has_symlinks():
466
            progress("symlinks")
467
            mkdir('symlinks')
468
            chdir('symlinks')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
469
            self.run_bzr('init')
1092.2.6 by Robert Collins
symlink support updated to work
470
            os.symlink("NOWHERE1", "link1")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
471
            self.run_bzr('add link1')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
472
            self.assertEquals(self.run_bzr('unknowns')[0], '')
473
            self.run_bzr(['commit', '-m', '1: added symlink link1'])
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
474
1092.2.6 by Robert Collins
symlink support updated to work
475
            mkdir('d1')
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
476
            self.run_bzr('add d1')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
477
            self.assertEquals(self.run_bzr('unknowns')[0], '')
1092.2.6 by Robert Collins
symlink support updated to work
478
            os.symlink("NOWHERE2", "d1/link2")
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
479
            self.assertEquals(self.run_bzr('unknowns')[0], 'd1/link2\n')
1092.2.6 by Robert Collins
symlink support updated to work
480
            # is d1/link2 found when adding d1
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
481
            self.run_bzr('add d1')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
482
            self.assertEquals(self.run_bzr('unknowns')[0], '')
1092.2.6 by Robert Collins
symlink support updated to work
483
            os.symlink("NOWHERE3", "d1/link3")
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
484
            self.assertEquals(self.run_bzr('unknowns')[0], 'd1/link3\n')
485
            self.run_bzr(['commit', '-m', '2: added dir, symlink'])
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
486
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
487
            self.run_bzr('rename d1 d2')
488
            self.run_bzr('move d2/link2 .')
489
            self.run_bzr('move link1 d2')
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
490
            self.assertEquals(os.readlink("./link2"), "NOWHERE2")
491
            self.assertEquals(os.readlink("d2/link1"), "NOWHERE1")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
492
            self.run_bzr('add d2/link3')
493
            self.run_bzr('diff', retcode=1)
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
494
            self.run_bzr(['commit', '-m',
495
                          '3: rename of dir, move symlinks, add link3'])
496
1092.2.6 by Robert Collins
symlink support updated to work
497
            os.unlink("link2")
498
            os.symlink("TARGET 2", "link2")
499
            os.unlink("d2/link1")
500
            os.symlink("TARGET 1", "d2/link1")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
501
            self.run_bzr('diff', retcode=1)
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
502
            self.assertEquals(self.run_bzr("relpath d2/link1")[0], "d2/link1\n")
503
            self.run_bzr(['commit', '-m', '4: retarget of two links'])
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
504
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
505
            self.run_bzr('remove --keep d2/link1')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
506
            self.assertEquals(self.run_bzr('unknowns')[0], 'd2/link1\n')
507
            self.run_bzr(['commit', '-m', '5: remove d2/link1'])
2292.1.23 by Marius Kruger
Revert test_too_much.py and just do the minimum te get the tests to pass.
508
            # try with the rm alias
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
509
            self.run_bzr('add d2/link1')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
510
            self.run_bzr(['commit', '-m', '6: add d2/link1'])
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
511
            self.run_bzr('rm --keep d2/link1')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
512
            self.assertEquals(self.run_bzr('unknowns')[0], 'd2/link1\n')
513
            self.run_bzr(['commit', '-m', '7: remove d2/link1'])
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
514
1092.2.6 by Robert Collins
symlink support updated to work
515
            os.mkdir("d1")
2530.3.1 by Martin Pool
Cleanup old variations on run_bzr in the test suite
516
            self.run_bzr('add d1')
517
            self.run_bzr('rename d2/link3 d1/link3new')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
518
            self.assertEquals(self.run_bzr('unknowns')[0], 'd2/link1\n')
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
519
            self.run_bzr(['commit', '-m',
520
                          '8: remove d2/link1, move/rename link3'])
521
522
            self.run_bzr('check')
523
524
            self.run_bzr('export -r 1 exp1.tmp')
1092.2.6 by Robert Collins
symlink support updated to work
525
            chdir("exp1.tmp")
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
526
            self.assertEquals(listdir_sorted("."), [ "link1" ])
527
            self.assertEquals(os.readlink("link1"), "NOWHERE1")
1092.2.6 by Robert Collins
symlink support updated to work
528
            chdir("..")
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
529
530
            self.run_bzr('export -r 2 exp2.tmp')
1092.2.6 by Robert Collins
symlink support updated to work
531
            chdir("exp2.tmp")
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
532
            self.assertEquals(listdir_sorted("."), [ "d1", "link1" ])
1092.2.6 by Robert Collins
symlink support updated to work
533
            chdir("..")
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
534
535
            self.run_bzr('export -r 3 exp3.tmp')
1092.2.6 by Robert Collins
symlink support updated to work
536
            chdir("exp3.tmp")
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
537
            self.assertEquals(listdir_sorted("."), [ "d2", "link2" ])
538
            self.assertEquals(listdir_sorted("d2"), [ "link1", "link3" ])
539
            self.assertEquals(os.readlink("d2/link1"), "NOWHERE1")
540
            self.assertEquals(os.readlink("link2")   , "NOWHERE2")
1092.2.6 by Robert Collins
symlink support updated to work
541
            chdir("..")
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
542
543
            self.run_bzr('export -r 4 exp4.tmp')
1092.2.6 by Robert Collins
symlink support updated to work
544
            chdir("exp4.tmp")
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
545
            self.assertEquals(listdir_sorted("."), [ "d2", "link2" ])
546
            self.assertEquals(os.readlink("d2/link1"), "TARGET 1")
547
            self.assertEquals(os.readlink("link2")   , "TARGET 2")
548
            self.assertEquals(listdir_sorted("d2"), [ "link1", "link3" ])
1092.2.6 by Robert Collins
symlink support updated to work
549
            chdir("..")
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
550
551
            self.run_bzr('export -r 5 exp5.tmp')
1092.2.6 by Robert Collins
symlink support updated to work
552
            chdir("exp5.tmp")
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
553
            self.assertEquals(listdir_sorted("."), [ "d2", "link2" ])
554
            self.assert_(os.path.islink("link2"))
555
            self.assert_(listdir_sorted("d2")== [ "link3" ])
1092.2.6 by Robert Collins
symlink support updated to work
556
            chdir("..")
2552.2.2 by Vincent Ladeuil
Enforce run_bzr(string) where possible.
557
558
            self.run_bzr('export -r 8 exp6.tmp')
1092.2.6 by Robert Collins
symlink support updated to work
559
            chdir("exp6.tmp")
1424 by Robert Collins
add rm alias to remove
560
            self.assertEqual(listdir_sorted("."), [ "d1", "d2", "link2"])
1185.16.145 by Martin Pool
Remove all assert statements from test cases.
561
            self.assertEquals(listdir_sorted("d1"), [ "link3new" ])
562
            self.assertEquals(listdir_sorted("d2"), [])
563
            self.assertEquals(os.readlink("d1/link3new"), "NOWHERE3")
1092.2.6 by Robert Collins
symlink support updated to work
564
            chdir("..")
565
        else:
566
            progress("skipping symlink tests")
1400.1.1 by Robert Collins
implement a basic test for the ui branch command from http servers
567
568
1524.1.1 by Robert Collins
Test sftp with relative, absolute-in-homedir and absolute-not-in-homedir
569
class RemoteTests(object):
1400.1.1 by Robert Collins
implement a basic test for the ui branch command from http servers
570
    """Test bzr ui commands against remote branches."""
571
572
    def test_branch(self):
573
        os.mkdir('from')
1534.4.50 by Robert Collins
Got the bzrdir api straightened out, plenty of refactoring to use it pending, but the api is up and running.
574
        wt = self.make_branch_and_tree('from')
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
575
        branch = wt.branch
576
        wt.commit('empty commit for nonsense', allow_pointless=True)
1534.4.50 by Robert Collins
Got the bzrdir api straightened out, plenty of refactoring to use it pending, but the api is up and running.
577
        url = self.get_readonly_url('from')
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
578
        self.run_bzr(['branch', url, 'to'])
1400.1.1 by Robert Collins
implement a basic test for the ui branch command from http servers
579
        branch = Branch.open('to')
580
        self.assertEqual(1, len(branch.revision_history()))
1534.4.50 by Robert Collins
Got the bzrdir api straightened out, plenty of refactoring to use it pending, but the api is up and running.
581
        # the branch should be set in to to from
582
        self.assertEqual(url + '/', branch.get_parent())
1185.16.48 by mbp at sourcefrog
- more refactoring of and tests for option parsing
583
1442.1.64 by Robert Collins
Branch.open_containing now returns a tuple (Branch, relative-path).
584
    def test_log(self):
585
        self.build_tree(['branch/', 'branch/file'])
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
586
        self.run_bzr('init branch')[0]
587
        self.run_bzr('add branch/file')[0]
588
        self.run_bzr('commit -m foo branch')[0]
1534.4.50 by Robert Collins
Got the bzrdir api straightened out, plenty of refactoring to use it pending, but the api is up and running.
589
        url = self.get_readonly_url('branch/file')
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
590
        output = self.run_bzr('log %s' % url)[0]
1185.35.17 by Aaron Bentley
Added branch nicks to long-format logs
591
        self.assertEqual(8, len(output.split('\n')))
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
592
1510 by Robert Collins
Merge from mpool, adjusting check to retain HTTP support.
593
    def test_check(self):
594
        self.build_tree(['branch/', 'branch/file'])
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
595
        self.run_bzr('init branch')[0]
596
        self.run_bzr('add branch/file')[0]
597
        self.run_bzr('commit -m foo branch')[0]
1534.4.50 by Robert Collins
Got the bzrdir api straightened out, plenty of refactoring to use it pending, but the api is up and running.
598
        url = self.get_readonly_url('branch/')
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
599
        self.run_bzr(['check', url])
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
600
1563.1.6 by Robert Collins
Add tests for sftp push, and NonLocalTets for BzrDir.create_branch_convenience, before fixing the failure of it to work on non-local urls.
601
    def test_push(self):
602
        # create a source branch
603
        os.mkdir('my-branch')
604
        os.chdir('my-branch')
605
        self.run_bzr('init')
606
        file('hello', 'wt').write('foo')
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
607
        self.run_bzr('add hello')
608
        self.run_bzr('commit -m setup')
1563.1.6 by Robert Collins
Add tests for sftp push, and NonLocalTets for BzrDir.create_branch_convenience, before fixing the failure of it to work on non-local urls.
609
610
        # with an explicit target work
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
611
        self.run_bzr(['push', self.get_url('output-branch')])
1563.1.6 by Robert Collins
Add tests for sftp push, and NonLocalTets for BzrDir.create_branch_convenience, before fixing the failure of it to work on non-local urls.
612
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
613
1524.1.1 by Robert Collins
Test sftp with relative, absolute-in-homedir and absolute-not-in-homedir
614
class HTTPTests(TestCaseWithWebserver, RemoteTests):
615
    """Test various commands against a HTTP server."""
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
616
617
1524.1.1 by Robert Collins
Test sftp with relative, absolute-in-homedir and absolute-not-in-homedir
618
class SFTPTestsAbsolute(TestCaseWithSFTPServer, RemoteTests):
619
    """Test various commands against a SFTP server using abs paths."""
620
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
621
1524.1.1 by Robert Collins
Test sftp with relative, absolute-in-homedir and absolute-not-in-homedir
622
class SFTPTestsAbsoluteSibling(TestCaseWithSFTPServer, RemoteTests):
623
    """Test various commands against a SFTP server using abs paths."""
624
625
    def setUp(self):
626
        super(SFTPTestsAbsoluteSibling, self).setUp()
627
        self._override_home = '/dev/noone/runs/tests/here'
628
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
629
1524.1.1 by Robert Collins
Test sftp with relative, absolute-in-homedir and absolute-not-in-homedir
630
class SFTPTestsRelative(TestCaseWithSFTPServer, RemoteTests):
631
    """Test various commands against a SFTP server using homedir rel paths."""
632
633
    def setUp(self):
634
        super(SFTPTestsRelative, self).setUp()
635
        self._get_remote_is_absolute = False