146
142
logfile = open(LOGFILENAME, 'wt', buffering=1)
149
"""Run a test involving creating a plugin to load,
150
and making sure it is seen properly.
153
f = open(os.path.join('plugin_test', 'myplug.py'), 'wb')
154
f.write("""import bzrlib, bzrlib.commands
155
class cmd_myplug(bzrlib.commands.Command):
156
'''Just a simple test plugin.'''
159
print 'Hello from my plugin'
163
os.environ['BZRPLUGINPATH'] = os.path.abspath('plugin_test')
164
help = backtick('bzr help commands')
165
assert help.find('myplug') != -1
166
assert help.find('Just a simple test plugin.') != -1
169
assert backtick('bzr myplug') == 'Hello from my plugin\n'
170
assert backtick('bzr mplg') == 'Hello from my plugin\n'
172
f = open(os.path.join('plugin_test', 'override.py'), 'wb')
173
f.write("""import bzrlib, bzrlib.commands
174
class cmd_commit(bzrlib.commands.cmd_commit):
175
'''Commit changes into a new revision.'''
176
def run(self, *args, **kwargs):
177
print "I'm sorry dave, you can't do that"
179
class cmd_help(bzrlib.commands.cmd_help):
180
'''Show help on a command or other topic.'''
181
def run(self, *args, **kwargs):
182
print "You have been overridden"
183
bzrlib.commands.cmd_help.run(self, *args, **kwargs)
188
newhelp = backtick('bzr help commands')
189
assert newhelp.startswith('You have been overridden\n')
190
# We added a line, but the rest should work
191
assert newhelp[25:] == help
193
assert backtick('bzr commit -m test') == "I'm sorry dave, you can't do that\n"
195
shutil.rmtree('plugin_test')
198
146
from getopt import getopt
217
165
print '%-30s %s' % ('in directory', os.getcwd())
218
166
print '%-30s %s' % ('with python', (OVERRIDE_PYTHON or '(default)'))
220
print backtick('bzr version')
168
print backtick([BZRPATH, 'version'])
222
170
runcmd(['mkdir', TESTDIR])
329
277
runcmd("bzr add sub1")
330
278
runcmd("bzr rename sub1 sub2")
331
279
runcmd("bzr move hello.txt sub2")
332
assert backtick("bzr relpath sub2/hello.txt") == os.path.join("sub2", "hello.txt\n")
280
assert backtick("bzr relpath sub2/hello.txt") == "sub2/hello.txt\n"
334
282
assert exists("sub2")
335
283
assert exists("sub2/hello.txt")
353
301
assert backtick('bzr root')[:-1] == os.path.join(test_root, 'branch1')
354
302
runcmd('bzr move ../hello.txt .')
355
303
assert exists('./hello.txt')
356
assert backtick('bzr relpath hello.txt') == os.path.join('sub1', 'sub2', 'hello.txt\n')
357
assert backtick('bzr relpath ../../sub1/sub2/hello.txt') == os.path.join('sub1', 'sub2', 'hello.txt\n')
304
assert backtick('bzr relpath hello.txt') == 'sub1/sub2/hello.txt\n'
305
assert backtick('bzr relpath ../../sub1/sub2/hello.txt') == 'sub1/sub2/hello.txt\n'
358
306
runcmd(['bzr', 'commit', '-m', 'move to parent directory'])
360
assert backtick('bzr relpath sub2/hello.txt') == os.path.join('sub1', 'sub2', 'hello.txt\n')
308
assert backtick('bzr relpath sub2/hello.txt') == 'sub1/sub2/hello.txt\n'
362
310
runcmd('bzr move sub2/hello.txt .')
363
311
assert exists('hello.txt')
389
337
runcmd('bzr commit -m add-spaces')
390
338
runcmd('bzr check')
393
runcmd('bzr log --forward')
405
# Can't create a branch if it already exists
406
runcmd('bzr branch branch1', retcode=1)
407
# Can't create a branch if its parent doesn't exist
408
runcmd('bzr branch /unlikely/to/exist', retcode=1)
409
runcmd('bzr branch branch1 branch2')
413
runcmd('bzr pull', retcode=1)
414
runcmd('bzr pull ../branch2')
417
runcmd('bzr commit -m empty')
421
runcmd('bzr commit -m empty')
423
runcmd('bzr commit -m empty')
424
runcmd('bzr pull', retcode=1)
427
progress('status after remove')
428
mkdir('status-after-remove')
429
# see mail from William Dodé, 2005-05-25
430
# $ bzr init; touch a; bzr add a; bzr commit -m "add a"
431
# * looking for changes...
436
# bzr: local variable 'kind' referenced before assignment
437
# at /vrac/python/bazaar-ng/bzrlib/diff.py:286 in compare_trees()
438
# see ~/.bzr.log for debug information
439
cd('status-after-remove')
441
file('a', 'w').write('foo')
443
runcmd(['bzr', 'commit', '-m', 'add a'])
444
runcmd('bzr remove a')
449
346
progress('ignore patterns')
474
371
assert backtick('bzr unknowns') == ''
475
372
assert file('.bzrignore', 'rb').read() == '*.blah\ngarh\n'
482
progress("recursive and non-recursive add")
487
fp = os.path.join('foo', 'test.txt')
491
runcmd('bzr add --no-recurse foo')
492
runcmd('bzr file-id foo')
493
runcmd('bzr file-id ' + fp, 1) # not versioned yet
494
runcmd('bzr commit -m add-dir-only')
496
runcmd('bzr file-id ' + fp, 1) # still not versioned
498
runcmd('bzr add foo')
499
runcmd('bzr file-id ' + fp)
500
runcmd('bzr commit -m add-sub-file')
507
# Run any function in this
512
if k.startswith('test_') and callable(g[k]):
513
progress(k[5:].replace('_', ' '))
516
376
progress("all tests passed!")
517
377
except Exception, e: