[MERGE] Convert tests.blackbox.test_d* to use internals where appropriate

Daniel Watkins D.M.Watkins at warwick.ac.uk
Tue Aug 21 16:11:18 BST 2007


On Tue, 2007-08-14 at 12:17 -0400, John Arbash Meinel wrote:
>  From what I can tell, the tests are actually designed to run a similar 
> "diff" test, but using different example branches (by overriding 
> make_example_branch()).
> 
> Which means that this change will breaks the point of the tests. 
> (Instead of running the tests 2 times with slightly different data, you 
> will run it 2 times with identical data).
This is entirely accurate.  Attached is a fix which doesn't run
roughshod over the original intents of the tests. :p
-- 
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-20070821150858-\
#   5vmfntk0v0ydy85n
# target_branch: file:///home/daniel/devel/bzr/bzr.dev/
# testament_sha1: 40a33d8e046f5bad8a7672b6522d566f08f35d63
# timestamp: 2007-08-21 17:09:28 +0200
# base_revision_id: pqm at pqm.ubuntu.com-20070821044713-ttnupbvhlsbwh1he
# 
# Begin patch
=== modified file 'bzrlib/tests/blackbox/test_diff.py'
--- bzrlib/tests/blackbox/test_diff.py	2007-08-20 13:07:12 +0000
+++ bzrlib/tests/blackbox/test_diff.py	2007-08-21 15:08:58 +0000
@@ -38,36 +38,37 @@
     """Base class with common setup method"""
 
     def make_example_branch(self):
-        # FIXME: copied from test_too_much -- share elsewhere?
         tree = self.make_branch_and_tree('.')
-        open('hello', 'wb').write('foo\n')
+        self.build_tree_contents([
+            ('hello',   'foo\n'),
+            ('goodbye', 'baz\n')])
         tree.add(['hello'])
         tree.commit('setup')
-        open('goodbye', 'wb').write('baz\n')
         tree.add(['goodbye'])
         tree.commit('setup')
+        return tree
 
 
 class TestDiff(DiffBase):
 
     def test_diff(self):
-        self.make_example_branch()
-        file('hello', 'wt').write('hello world!')
-        self.run_bzr('commit -m fixing hello')
+        tree = self.make_example_branch()
+        self.build_tree_contents([('hello', 'hello world!')])
+        tree.commit(message='fixing hello')
         output = self.run_bzr('diff -r 2..3', retcode=1)[0]
         self.assert_('\n+hello world!' in output)
         output = self.run_bzr('diff -r last:3..last:1',
                 retcode=1)[0]
         self.assert_('\n+baz' in output)
         self.build_tree(['moo'])
-        self.run_bzr('add moo')
+        tree.add('moo')
         os.unlink('moo')
         self.run_bzr('diff')
 
     def test_diff_prefix(self):
         """diff --prefix appends to filenames in output"""
         self.make_example_branch()
-        file('hello', 'wb').write('hello world!\n')
+        self.build_tree_contents([('hello', 'hello world!\n')])
         out, err = self.run_bzr('diff --prefix old/:new/', retcode=1)
         self.assertEquals(err, '')
         self.assertEqualDiff(subst_dates(out), '''\
@@ -89,7 +90,7 @@
     def test_diff_p1(self):
         """diff -p1 produces lkml-style diffs"""
         self.make_example_branch()
-        file('hello', 'wb').write('hello world!\n')
+        self.build_tree_contents([('hello', 'hello world!\n')])
         out, err = self.run_bzr('diff -p1', retcode=1)
         self.assertEquals(err, '')
         self.assertEqualDiff(subst_dates(out), '''\
@@ -105,7 +106,7 @@
     def test_diff_p0(self):
         """diff -p0 produces diffs with no prefix"""
         self.make_example_branch()
-        file('hello', 'wb').write('hello world!\n')
+        self.build_tree_contents([('hello', 'hello world!\n')])
         out, err = self.run_bzr('diff -p0', retcode=1)
         self.assertEquals(err, '')
         self.assertEqualDiff(subst_dates(out), '''\
@@ -140,13 +141,14 @@
     # TODO: What should diff say for a file deleted in working tree?
 
     def example_branches(self):
-        self.build_tree(['branch1/', 'branch1/file'], line_endings='binary')
-        self.run_bzr('init branch1')[0]
-        self.run_bzr('add branch1/file')[0]
-        self.run_bzr(['commit', '-m', 'add file', 'branch1'])
-        self.run_bzr('branch branch1 branch2')[0]
+        branch1_tree = self.make_branch_and_tree('branch1')
+        self.build_tree(['branch1/file'], line_endings='binary')
+        branch1_tree.add('file')
+        branch1_tree.commit(message='add file')
+        branch2_tree = branch1_tree.bzrdir.sprout('branch2').open_workingtree()
         self.build_tree_contents([('branch2/file', 'new content\n')])
-        self.run_bzr(['commit', '-m', 'update file', 'branch2'])
+        branch2_tree.commit(message='update file')
+        return branch1_tree, branch2_tree
 
     def test_diff_branches(self):
         self.example_branches()
@@ -174,9 +176,9 @@
 
     def test_diff_revno_branches(self):
         self.example_branches()
-        print >> open('branch2/file', 'wb'), 'even newer content'
-        self.run_bzr(['commit', '-m',
-                      'update file once more', 'branch2'])
+        branch2_tree = workingtree.WorkingTree.open_containing('branch2')[0]
+        self.build_tree_contents([('branch2/file', 'even newer content')])
+        branch2_tree.commit(message='update file once more')
 
         out, err = self.run_bzr('diff -r revno:1:branch2..revno:1:branch1',
                                 )
@@ -194,29 +196,25 @@
                               "\n", subst_dates(out))
 
     def example_branch2(self):
-        self.build_tree(['branch1/', 'branch1/file1'], line_endings='binary')
-        self.run_bzr('init branch1')[0]
-        self.run_bzr('add branch1/file1')[0]
-        print >> open('branch1/file1', 'wb'), 'original line'
-        self.run_bzr(['commit', '-m', 'first commit', 'branch1'])
-        
-        print >> open('branch1/file1', 'wb'), 'repo line'
-        self.run_bzr(['commit', '-m', 'second commit', 'branch1'])
+        branch1_tree = self.make_branch_and_tree('branch1')
+        self.build_tree_contents([('branch1/file1', 'original line\n')])
+        branch1_tree.add('file1')
+        branch1_tree.commit(message='first commit')
+        self.build_tree_contents([('branch1/file1', 'repo line\n')])
+        branch1_tree.commit(message='second commit')
+        return branch1_tree
 
     def test_diff_to_working_tree(self):
         self.example_branch2()
-        
-        print >> open('branch1/file1', 'wb'), 'new line'
-        output = self.run_bzr('diff -r 1.. branch1',
-                              retcode=1)
+        self.build_tree_contents([('branch1/file1', 'new line')])
+        output = self.run_bzr('diff -r 1.. branch1', retcode=1)
         self.assertContainsRe(output[0], '\n\\-original line\n\\+new line\n')
 
     def test_diff_across_rename(self):
         """The working tree path should always be considered for diffing"""
-        self.make_example_branch()
+        tree = self.make_example_branch()
         self.run_bzr('diff -r 0..1 hello', retcode=1)
-        wt = workingtree.WorkingTree.open_containing('.')[0]
-        wt.rename_one('hello', 'hello1')
+        tree.rename_one('hello', 'hello1')
         self.run_bzr('diff hello1', retcode=1)
         self.run_bzr('diff -r 0..1 hello1', retcode=1)
 
@@ -224,48 +222,51 @@
 class TestCheckoutDiff(TestDiff):
 
     def make_example_branch(self):
-        super(TestCheckoutDiff, self).make_example_branch()
-        self.run_bzr('checkout . checkout')
+        tree = super(TestCheckoutDiff, self).make_example_branch()
+        tree = tree.branch.create_checkout('checkout')
         os.chdir('checkout')
+        return tree
 
     def example_branch2(self):
-        super(TestCheckoutDiff, self).example_branch2()
+        tree = super(TestCheckoutDiff, self).example_branch2()
         os.mkdir('checkouts')
-        self.run_bzr('checkout branch1 checkouts/branch1')
+        tree = tree.branch.create_checkout('checkouts/branch1')
         os.chdir('checkouts')
+        return tree
 
     def example_branches(self):
-        super(TestCheckoutDiff, self).example_branches()
+        branch1_tree, branch2_tree = super(TestCheckoutDiff, self).example_branches()
         os.mkdir('checkouts')
-        self.run_bzr('checkout branch1 checkouts/branch1')
-        self.run_bzr('checkout branch2 checkouts/branch2')
+        branch1_tree = branch1_tree.branch.create_checkout('checkouts/branch1')
+        branch2_tree = branch2_tree.branch.create_checkout('checkouts/branch2')
         os.chdir('checkouts')
+        return branch1_tree, branch2_tree
 
 
 class TestDiffLabels(DiffBase):
 
     def test_diff_label_removed(self):
-        super(TestDiffLabels, self).make_example_branch()
-        self.run_bzr('remove hello')
+        tree = super(TestDiffLabels, self).make_example_branch()
+        tree.remove('hello', keep_files=False)
         diff = self.run_bzr('diff', retcode=1)
         self.assertTrue("=== removed file 'hello'" in diff[0])
 
     def test_diff_label_added(self):
-        super(TestDiffLabels, self).make_example_branch()
-        file('barbar', 'wt').write('barbar')
-        self.run_bzr('add barbar')
+        tree = super(TestDiffLabels, self).make_example_branch()
+        self.build_tree_contents([('barbar', 'barbar')])
+        tree.add('barbar')
         diff = self.run_bzr('diff', retcode=1)
         self.assertTrue("=== added file 'barbar'" in diff[0])
 
     def test_diff_label_modified(self):
         super(TestDiffLabels, self).make_example_branch()
-        file('hello', 'wt').write('barbar')
+        self.build_tree_contents([('hello', 'barbar')])
         diff = self.run_bzr('diff', retcode=1)
         self.assertTrue("=== modified file 'hello'" in diff[0])
 
     def test_diff_label_renamed(self):
-        super(TestDiffLabels, self).make_example_branch()
-        self.run_bzr('rename hello gruezi')
+        tree = super(TestDiffLabels, self).make_example_branch()
+        tree.rename_one('hello', 'gruezi')
         diff = self.run_bzr('diff', retcode=1)
         self.assertTrue("=== renamed file 'hello' => 'gruezi'" in diff[0])
 
@@ -308,6 +309,6 @@
     def test_diff_output(self):
         # check that output doesn't mangle line-endings
         self.make_example_branch()
-        file('hello', 'wb').write('hello world!\n')
+        self.build_tree_contents([('hello', 'hello world!\n')])
         output = self.run_bzr_subprocess('diff', retcode=1)[0]
         self.assert_('\n+hello world!\n' in output)

# Begin bundle
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
qMCdA5HjwPTMFgVn/i7kinChIKBhKbg=
-------------- 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/064a21c6/attachment-0001.pgp 


More information about the bazaar mailing list