Review: [MERGE] Convert test.blackbox.test_c* to use internals where appropriate
Daniel Watkins
D.M.Watkins at warwick.ac.uk
Tue Aug 21 21:42:05 BST 2007
Gah, sending to the list rather than just Andrew this time. Sorry for
the spam, Andrew.
On Thu, 2007-08-09 at 13:00 +1000, Andrew Bennetts wrote:
> You replace run_bzr_subprocess with run_bzr. As explained by Alexander, this
> test should still use run_bzr_subprocess:
This has been done on any that compare output with a string.
> I think a comment like this would do:
>
> # We use run_bzr_subprocess rather than run_bzr here so that we can test
> # mangling of line-endings on Windows.
Done.
> > + rev_id = tree.branch.revision_history()[-1]
>
> As Aaron says, use last_revision() instead.
Done.
> > from bzrlib.branch import Branch
> > from bzrlib.bzrdir import BzrDir
> > +from bzrlib.conflicts import resolve
> As Aaron says, you don't use this.
>
> (Incidentally, pyflakes says that 're', 'sys', 'Branch', 'BzrCommandError' and
> 'WorkingTree' are imported but unused too. Feel free to tidy that while you're
> there...)
Done.
> PEP 8 says not to use whitespace to align things.
PEP 8 says not to have 'more than one space around an assignment (or
other) operator to align it with another'. This is a separator as
opposed to operator and isn't being used to align the separators with
one another but rather the contents of the tuples.
Regards,
--
Daniel Watkins (Odd_Bloke) <D.M.Watkins at warwick.ac.uk>
University of Warwick Christian Focus President
University of Warwick Computing Society WUGLUG Liaison Officer
-------------- next part --------------
# Bazaar merge directive format 2 (Bazaar 0.19)
# revision_id: d.m.watkins at warwick.ac.uk-20070821192512-\
# sfd2x2hap603dtm5
# target_branch: file:///home/daniel/devel/bzr/bzr.dev/
# testament_sha1: 19545d60aaf2cb4e9c1420d86416479afb80f54b
# timestamp: 2007-08-21 21:25:38 +0200
# base_revision_id: pqm at pqm.ubuntu.com-20070821044713-ttnupbvhlsbwh1he
#
# Begin patch
=== modified file 'bzrlib/tests/blackbox/test_cat.py'
--- bzrlib/tests/blackbox/test_cat.py 2007-08-03 02:52:23 +0000
+++ bzrlib/tests/blackbox/test_cat.py 2007-08-21 19:18:03 +0000
@@ -26,40 +26,36 @@
class TestCat(TestCaseWithTransport):
def test_cat(self):
-
- def bzr(*args, **kwargs):
- return self.run_bzr_subprocess(list(args), **kwargs)[0]
-
- os.mkdir('branch')
+ tree = self.make_branch_and_tree('branch')
+ self.build_tree_contents([('branch/a', 'foo\n')])
+ tree.add('a')
os.chdir('branch')
- bzr('init')
- open('a', 'wb').write('foo\n')
- bzr('add', 'a')
-
# 'bzr cat' without an option should cat the last revision
- bzr('cat', 'a', retcode=3)
-
- bzr('commit', '-m', '1')
- open('a', 'wb').write('baz\n')
-
- self.assertEquals(bzr('cat', 'a'), 'foo\n')
-
- bzr('commit', '-m', '2')
- self.assertEquals(bzr('cat', 'a'), 'baz\n')
- self.assertEquals(bzr('cat', 'a', '-r', '1'), 'foo\n')
- self.assertEquals(bzr('cat', 'a', '-r', '-1'), 'baz\n')
-
- rev_id = bzr('revision-history').strip().split('\n')[-1]
-
- self.assertEquals(bzr('cat', 'a', '-r', 'revid:%s' % rev_id), 'baz\n')
-
+ self.run_bzr('cat', 'a', retcode=3)
+
+ tree.commit(message='1')
+ self.build_tree_contents([('a', 'baz\n')])
+
+ # We use run_bzr_subprocess rather than run_bzr here so that we can
+ # test mangling of line-endings on Windows.
+ self.assertEquals(self.run_bzr_subprocess('cat', 'a')[0], 'foo\n')
+
+ tree.commit(message='2')
+ self.assertEquals(self.run_bzr_subprocess('cat', 'a')[0], 'baz\n')
+ self.assertEquals(self.run_bzr_subprocess('cat', 'a', '-r', '1')[0], 'foo\n')
+ self.assertEquals(self.run_bzr_subprocess('cat', 'a', '-r', '-1')[0], 'baz\n')
+
+ rev_id = tree.branch.last_revision()
+
+ self.assertEquals(self.run_bzr_subprocess('cat', 'a', '-r', 'revid:%s' % rev_id)[0], 'baz\n')
+
os.chdir('..')
-
- self.assertEquals(bzr('cat', 'branch/a', '-r', 'revno:1:branch'),
+
+ self.assertEquals(self.run_bzr_subprocess('cat', 'branch/a', '-r', 'revno:1:branch')[0],
'foo\n')
- bzr('cat', 'a', retcode=3)
- bzr('cat', 'a', '-r', 'revno:1:branch-that-does-not-exist', retcode=3)
-
+ self.run_bzr('cat', 'a', retcode=3)
+ self.run_bzr('cat', 'a', '-r', 'revno:1:branch-that-does-not-exist', retcode=3)
+
def test_cat_different_id(self):
"""'cat' works with old and new files"""
tree = self.make_branch_and_tree('.')
@@ -89,15 +85,15 @@
'cat b-tree --name-from-revision')
# get to the old file automatically
- out, err = self.run_bzr('cat d-rev')
+ out, err = self.run_bzr_subprocess('cat d-rev')
self.assertEqual('bar\n', out)
self.assertEqual('', err)
- out, err = self.run_bzr('cat a-rev-tree --name-from-revision')
+ out, err = self.run_bzr_subprocess('cat a-rev-tree --name-from-revision')
self.assertEqual('foo\n', out)
self.assertEqual('', err)
- out, err = self.run_bzr('cat a-rev-tree')
+ out, err = self.run_bzr_subprocess('cat a-rev-tree')
self.assertEqual('baz\n', out)
self.assertEqual('', err)
@@ -108,7 +104,7 @@
wt.commit('Making sure there is a basis_tree available')
url = self.get_readonly_url() + '/README'
- out, err = self.run_bzr(['cat', url])
+ out, err = self.run_bzr_subprocess(['cat', url])
self.assertEqual('contents of README\n', out)
def test_cat_no_working_tree(self):
@@ -119,6 +115,6 @@
wt.branch.bzrdir.destroy_workingtree()
url = self.get_readonly_url() + '/README'
- out, err = self.run_bzr(['cat', url])
+ out, err = self.run_bzr_subprocess(['cat', url])
self.assertEqual('contents of README\n', out)
=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- bzrlib/tests/blackbox/test_commit.py 2007-08-07 14:57:35 +0000
+++ bzrlib/tests/blackbox/test_commit.py 2007-08-21 19:25:12 +0000
@@ -18,17 +18,12 @@
"""Tests for the commit CLI of bzr."""
import os
-import re
-import sys
from bzrlib import (
ignores,
)
-from bzrlib.branch import Branch
from bzrlib.bzrdir import BzrDir
-from bzrlib.errors import BzrCommandError
from bzrlib.tests.blackbox import ExternalBase
-from bzrlib.workingtree import WorkingTree
class TestCommit(ExternalBase):
@@ -36,7 +31,7 @@
def test_05_empty_commit(self):
"""Commit of tree with no versioned files should fail"""
# If forced, it should succeed, but this is not tested here.
- self.run_bzr("init")
+ self.make_branch_and_tree('.')
self.build_tree(['hello.txt'])
out,err = self.run_bzr('commit -m empty', retcode=3)
self.assertEqual('', out)
@@ -45,7 +40,7 @@
def test_commit_success(self):
"""Successful commit should not leave behind a bzr-commit-* file"""
- self.run_bzr("init")
+ self.make_branch_and_tree('.')
self.run_bzr('commit --unchanged -m message')
self.assertEqual('', self.run_bzr('unknowns')[0])
@@ -55,30 +50,29 @@
def test_commit_with_path(self):
"""Commit tree with path of root specified"""
- self.run_bzr('init a')
+ a_tree = self.make_branch_and_tree('a')
self.build_tree(['a/a_file'])
- self.run_bzr('add a/a_file')
+ a_tree.add('a_file')
self.run_bzr(['commit', '-m', 'first commit', 'a'])
- self.run_bzr('branch a b')
+ b_tree = a_tree.bzrdir.sprout('b').open_workingtree()
self.build_tree_contents([('b/a_file', 'changes in b')])
self.run_bzr(['commit', '-m', 'first commit in b', 'b'])
self.build_tree_contents([('a/a_file', 'new contents')])
self.run_bzr(['commit', '-m', 'change in a', 'a'])
- os.chdir('b')
- self.run_bzr('merge ../a', retcode=1) # will conflict
- os.chdir('..')
+ b_tree.merge_from_branch(a_tree.branch)
+ self.assertEqual(len(b_tree.conflicts()), 1)
self.run_bzr('resolved b/a_file')
self.run_bzr(['commit', '-m', 'merge into b', 'b'])
def test_10_verbose_commit(self):
"""Add one file and examine verbose commit output"""
- self.run_bzr("init")
+ tree = self.make_branch_and_tree('.')
self.build_tree(['hello.txt'])
- self.run_bzr("add hello.txt")
+ tree.add("hello.txt")
out,err = self.run_bzr('commit -m added')
self.assertEqual('', out)
self.assertEqual('added hello.txt\n'
@@ -141,11 +135,11 @@
def test_verbose_commit_with_unchanged(self):
"""Unchanged files should not be listed by default in verbose output"""
- self.run_bzr("init")
+ tree = self.make_branch_and_tree('.')
self.build_tree(['hello.txt', 'unchanged.txt'])
- self.run_bzr('add unchanged.txt')
+ tree.add('unchanged.txt')
self.run_bzr('commit -m unchanged unchanged.txt')
- self.run_bzr("add hello.txt")
+ tree.add("hello.txt")
out,err = self.run_bzr('commit -m added')
self.assertEqual('', out)
self.assertEqual('added hello.txt\n'
@@ -219,25 +213,21 @@
err)
def test_empty_commit_message(self):
- self.run_bzr("init")
- file('foo.c', 'wt').write('int main() {}')
- self.run_bzr('add foo.c')
+ tree = self.make_branch_and_tree('.')
+ self.build_tree_contents([('foo.c', 'int main() {}')])
+ tree.add('foo.c')
self.run_bzr('commit -m ""', retcode=3)
def test_other_branch_commit(self):
# this branch is to ensure consistent behaviour, whether we're run
# inside a branch, or not.
- os.mkdir('empty_branch')
- os.chdir('empty_branch')
- self.run_bzr('init')
- os.mkdir('branch')
- os.chdir('branch')
- self.run_bzr('init')
- file('foo.c', 'wt').write('int main() {}')
- file('bar.c', 'wt').write('int main() {}')
- os.chdir('..')
- self.run_bzr('add branch/foo.c')
- self.run_bzr('add branch')
+ outer_tree = self.make_branch_and_tree('.')
+ inner_tree = self.make_branch_and_tree('branch')
+ self.build_tree_contents([
+ ('branch/foo.c', 'int main() {}'),
+ ('branch/bar.c', 'int main() {}')])
+ inner_tree.add('foo.c')
+ inner_tree.add('bar.c')
# can't commit files in different trees; sane error
self.run_bzr('commit -m newstuff branch/foo.c .', retcode=3)
self.run_bzr('commit -m newstuff branch/foo.c')
@@ -247,11 +237,11 @@
def test_out_of_date_tree_commit(self):
# check we get an error code and a clear message committing with an out
# of date checkout
- self.make_branch_and_tree('branch')
+ tree = self.make_branch_and_tree('branch')
# make a checkout
- self.run_bzr('checkout --lightweight branch checkout')
+ checkout = tree.branch.create_checkout('checkout', lightweight=True)
# commit to the original branch to make the checkout out of date
- self.run_bzr('commit --unchanged -m message branch')
+ tree.commit('message branch', allow_pointless=True)
# now commit to the checkout should emit
# ERROR: Out of date with the branch, 'bzr update' is suggested
output = self.run_bzr('commit --unchanged -m checkout_message '
@@ -275,14 +265,14 @@
# past. This is a user story reported to fail in bug #43959 where
# a merge done in a checkout (using the update command) failed to
# commit correctly.
- self.run_bzr('init trunk')
+ trunk = self.make_branch_and_tree('trunk')
- self.run_bzr('checkout trunk u1')
+ u1 = trunk.branch.create_checkout('u1')
self.build_tree_contents([('u1/hosts', 'initial contents')])
- self.run_bzr('add u1/hosts')
+ u1.add('hosts')
self.run_bzr('commit -m add-hosts u1')
- self.run_bzr('checkout trunk u2')
+ u2 = trunk.branch.create_checkout('u2')
self.build_tree_contents([('u2/hosts', 'altered in u2')])
self.run_bzr('commit -m checkin-from-u2 u2')
=== modified file 'bzrlib/tests/blackbox/test_conflicts.py'
--- bzrlib/tests/blackbox/test_conflicts.py 2007-06-27 19:13:50 +0000
+++ bzrlib/tests/blackbox/test_conflicts.py 2007-08-03 13:50:09 +0000
@@ -29,30 +29,31 @@
def setUp(self):
super(ExternalBase, self).setUp()
- try:
- os.mkdir('a')
- except:
- raise os.getcwd()
+ a_tree = self.make_branch_and_tree('a')
+ self.build_tree_contents([
+ ('a/myfile', 'contentsa\n'),
+ ('a/my_other_file', 'contentsa\n'),
+ ('a/mydir/', ),
+ ])
+ a_tree.add('myfile')
+ a_tree.add('my_other_file')
+ a_tree.add('mydir')
+ a_tree.commit(message="new")
+ b_tree = a_tree.bzrdir.sprout('b').open_workingtree()
+ self.build_tree_contents([
+ ('b/myfile', 'contentsb\n'),
+ ('b/my_other_file', 'contentsb\n'),
+ ])
+ b_tree.rename_one('mydir', 'mydir2')
+ b_tree.commit(message="change")
+ self.build_tree_contents([
+ ('a/myfile', 'contentsa2\n'),
+ ('a/my_other_file', 'contentsa2\n'),
+ ])
+ a_tree.rename_one('mydir', 'mydir3')
+ a_tree.commit(message='change')
+ a_tree.merge_from_branch(b_tree.branch)
os.chdir('a')
- self.run_bzr('init')
- file('myfile', 'wb').write('contentsa\n')
- file('my_other_file', 'wb').write('contentsa\n')
- os.mkdir('mydir')
- self.run_bzr('add')
- self.run_bzr('commit -m new')
- os.chdir('..')
- self.run_bzr('branch a b')
- os.chdir('b')
- file('myfile', 'wb').write('contentsb\n')
- file('my_other_file', 'wb').write('contentsb\n')
- self.run_bzr('mv mydir mydir2')
- self.run_bzr('commit -m change')
- os.chdir('../a')
- file('myfile', 'wb').write('contentsa2\n')
- file('my_other_file', 'wb').write('contentsa2\n')
- self.run_bzr('mv mydir mydir3')
- self.run_bzr('commit -m change')
- self.run_bzr('merge ../b', retcode=1)
def test_conflicts(self):
conflicts, errs = self.run_bzr('conflicts')
# Begin bundle
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070821/8c4763f9/attachment-0001.pgp
More information about the bazaar
mailing list