108
114
def test_args(self):
109
"""Test that run_bzr passes args correctly to run_bzr_captured"""
110
self.run_bzr('arg1', 'arg2', 'arg3', retcode=1)
111
self.assertEqual(('arg1', 'arg2', 'arg3'), self.argv)
115
"""Test that run_bzr passes args correctly to _run_bzr_core"""
117
['passing varargs to run_bzr was deprecated in version 0.18.'],
119
'arg1', 'arg2', 'arg3', retcode=1)
120
self.assertEqual(['arg1', 'arg2', 'arg3'], self.argv)
113
122
def test_encoding(self):
114
"""Test that run_bzr passes encoding to run_bzr_captured"""
115
self.run_bzr('foo', 'bar')
123
"""Test that run_bzr passes encoding to _run_bzr_core"""
124
self.run_bzr('foo bar')
116
125
self.assertEqual(None, self.encoding)
117
self.assertEqual(('foo', 'bar'), self.argv)
126
self.assertEqual(['foo', 'bar'], self.argv)
119
self.run_bzr('foo', 'bar', encoding='baz')
128
self.run_bzr('foo bar', encoding='baz')
120
129
self.assertEqual('baz', self.encoding)
121
self.assertEqual(('foo', 'bar'), self.argv)
130
self.assertEqual(['foo', 'bar'], self.argv)
123
132
def test_retcode(self):
124
"""Test that run_bzr passes retcode to run_bzr_captured"""
133
"""Test that run_bzr passes retcode to _run_bzr_core"""
125
134
# Default is retcode == 0
126
self.run_bzr('foo', 'bar')
135
self.run_bzr('foo bar')
127
136
self.assertEqual(0, self.retcode)
128
self.assertEqual(('foo', 'bar'), self.argv)
137
self.assertEqual(['foo', 'bar'], self.argv)
130
self.run_bzr('foo', 'bar', retcode=1)
139
self.run_bzr('foo bar', retcode=1)
131
140
self.assertEqual(1, self.retcode)
132
self.assertEqual(('foo', 'bar'), self.argv)
141
self.assertEqual(['foo', 'bar'], self.argv)
134
self.run_bzr('foo', 'bar', retcode=None)
143
self.run_bzr('foo bar', retcode=None)
135
144
self.assertEqual(None, self.retcode)
136
self.assertEqual(('foo', 'bar'), self.argv)
145
self.assertEqual(['foo', 'bar'], self.argv)
138
self.run_bzr('foo', 'bar', retcode=3)
147
self.run_bzr(['foo', 'bar'], retcode=3)
139
148
self.assertEqual(3, self.retcode)
140
self.assertEqual(('foo', 'bar'), self.argv)
149
self.assertEqual(['foo', 'bar'], self.argv)
142
151
def test_stdin(self):
143
152
# test that the stdin keyword to run_bzr is passed through to
144
# run_bzr_captured as-is. We do this by overriding
145
# run_bzr_captured in this class, and then calling run_bzr,
146
# which is a convenience function for run_bzr_captured, so
153
# _run_bzr_core as-is. We do this by overriding
154
# _run_bzr_core in this class, and then calling run_bzr,
155
# which is a convenience function for _run_bzr_core, so
147
156
# should invoke it.
148
self.run_bzr('foo', 'bar', stdin='gam')
157
self.run_bzr('foo bar', stdin='gam')
149
158
self.assertEqual('gam', self.stdin)
150
self.assertEqual(('foo', 'bar'), self.argv)
159
self.assertEqual(['foo', 'bar'], self.argv)
152
self.run_bzr('foo', 'bar', stdin='zippy')
161
self.run_bzr('foo bar', stdin='zippy')
153
162
self.assertEqual('zippy', self.stdin)
154
self.assertEqual(('foo', 'bar'), self.argv)
163
self.assertEqual(['foo', 'bar'], self.argv)
156
165
def test_working_dir(self):
157
"""Test that run_bzr passes working_dir to run_bzr_captured"""
158
self.run_bzr('foo', 'bar')
166
"""Test that run_bzr passes working_dir to _run_bzr_core"""
167
self.run_bzr('foo bar')
159
168
self.assertEqual(None, self.working_dir)
160
self.assertEqual(('foo', 'bar'), self.argv)
169
self.assertEqual(['foo', 'bar'], self.argv)
162
self.run_bzr('foo', 'bar', working_dir='baz')
171
self.run_bzr('foo bar', working_dir='baz')
163
172
self.assertEqual('baz', self.working_dir)
164
self.assertEqual(('foo', 'bar'), self.argv)
173
self.assertEqual(['foo', 'bar'], self.argv)
167
176
class TestBenchmarkTests(TestCaseWithTransport):
204
214
def test_stdin(self):
205
# test that the stdin keyword to run_bzr_captured is passed through to
215
# test that the stdin keyword to _run_bzr_core is passed through to
206
216
# apply_redirected as a StringIO. We do this by overriding
207
# apply_redirected in this class, and then calling run_bzr_captured,
217
# apply_redirected in this class, and then calling _run_bzr_core,
208
218
# which calls apply_redirected.
209
self.run_bzr_captured(['foo', 'bar'], stdin='gam')
219
self.run_bzr(['foo', 'bar'], stdin='gam')
210
220
self.assertEqual('gam', self.stdin.read())
211
221
self.assertTrue(self.stdin is self.factory_stdin)
212
self.run_bzr_captured(['foo', 'bar'], stdin='zippy')
222
self.run_bzr(['foo', 'bar'], stdin='zippy')
213
223
self.assertEqual('zippy', self.stdin.read())
214
224
self.assertTrue(self.stdin is self.factory_stdin)
216
226
def test_ui_factory(self):
217
# each invocation of self.run_bzr_captured should get its
227
# each invocation of self.run_bzr should get its
218
228
# own UI factory, which is an instance of TestUIFactory,
219
229
# with stdin, stdout and stderr attached to the stdin,
220
# stdout and stderr of the invoked run_bzr_captured
230
# stdout and stderr of the invoked run_bzr
221
231
current_factory = bzrlib.ui.ui_factory
222
self.run_bzr_captured(['foo'])
232
self.run_bzr(['foo'])
223
233
self.failIf(current_factory is self.factory)
224
234
self.assertNotEqual(sys.stdout, self.factory.stdout)
225
235
self.assertNotEqual(sys.stderr, self.factory.stderr)
232
242
cwd = osutils.getcwd()
234
244
# Default is to work in the current directory
235
self.run_bzr_captured(['foo', 'bar'])
245
self.run_bzr(['foo', 'bar'])
236
246
self.assertEqual(cwd, self.working_dir)
238
self.run_bzr_captured(['foo', 'bar'], working_dir=None)
248
self.run_bzr(['foo', 'bar'], working_dir=None)
239
249
self.assertEqual(cwd, self.working_dir)
241
251
# The function should be run in the alternative directory
242
252
# but afterwards the current working dir shouldn't be changed
243
self.run_bzr_captured(['foo', 'bar'], working_dir='one')
253
self.run_bzr(['foo', 'bar'], working_dir='one')
244
254
self.assertNotEqual(cwd, self.working_dir)
245
255
self.assertEndsWith(self.working_dir, 'one')
246
256
self.assertEqual(cwd, osutils.getcwd())
248
self.run_bzr_captured(['foo', 'bar'], working_dir='two')
258
self.run_bzr(['foo', 'bar'], working_dir='two')
249
259
self.assertNotEqual(cwd, self.working_dir)
250
260
self.assertEndsWith(self.working_dir, 'two')
251
261
self.assertEqual(cwd, osutils.getcwd())
539
552
def test_list_only_filtered(self):
540
553
# check that a filtered --list-only works, both include and exclude
541
out_all,err_all = self.run_bzr_captured(['selftest', '--list-only'])
554
out_all,err_all = self.run_bzr('selftest --list-only')
542
555
tests_all = self._parse_test_list(out_all.splitlines())[1]
543
out_incl,err_incl = self.run_bzr_captured(['selftest', '--list-only',
556
out_incl,err_incl = self.run_bzr('selftest --list-only selftest')
545
557
tests_incl = self._parse_test_list(out_incl.splitlines())[1]
546
558
self.assertSubset(tests_incl, tests_all)
547
out_excl,err_excl = self.run_bzr_captured(['selftest', '--list-only',
548
'--exclude', 'selftest'])
559
out_excl,err_excl = self.run_bzr(['selftest', '--list-only',
560
'--exclude', 'selftest'])
549
561
tests_excl = self._parse_test_list(out_excl.splitlines())[1]
550
562
self.assertSubset(tests_excl, tests_all)
551
563
set_incl = set(tests_incl)
557
569
def test_list_only_random(self):
558
570
# check that --randomize works correctly
559
out_all,err_all = self.run_bzr_captured(['selftest', '--list-only',
571
out_all,err_all = self.run_bzr('selftest --list-only selftest')
561
572
tests_all = self._parse_test_list(out_all.splitlines())[1]
562
out_rand,err_rand = self.run_bzr_captured(['selftest', '--list-only',
563
'selftest', '--randomize', 'now'])
573
# XXX: It looks like there are some orders for generating tests that
574
# fail as of 20070504 - maybe because of import order dependencies.
575
# So unfortunately this will rarely intermittently fail at the moment.
577
out_rand,err_rand = self.run_bzr(['selftest', '--list-only',
578
'selftest', '--randomize', 'now'])
564
579
(header_rand,tests_rand,dummy) = self._parse_test_list(
565
580
out_rand.splitlines(), 2)
566
581
self.assertNotEqual(tests_all, tests_rand)