Merge lp:~jelmer/brz/more-foreign-fixes into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/more-foreign-fixes
Merge into: lp:brz
Diff against target: 179 lines (+27/-20)
3 files modified
breezy/tests/per_workingtree/test_get_parent_ids.py (+5/-0)
breezy/tests/per_workingtree/test_parents.py (+10/-9)
breezy/tests/per_workingtree/test_remove.py (+12/-11)
To merge this branch: bzr merge lp:~jelmer/brz/more-foreign-fixes
Reviewer Review Type Date Requested Status
Martin Packman Approve
Review via email: mp+342035@code.launchpad.net

Commit message

Fix several more foreign tests.

Description of the change

Fix several more foreign tests.

* Make sure directories have contents when testing with them (e.g. in test_remove)
* Skip some workingtree tests that require right handside ghost parents for formats that don't support them
* skip text revision parent tests for non-inventory trees

To post a comment you must log in.
Revision history for this message
Martin Packman (gz) wrote :

Thanks.

review: Approve
Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :

Running landing tests failed
https://ci.breezy-vcs.org/job/brz-dev/69/

Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :

Running landing tests failed
https://ci.breezy-vcs.org/job/brz-dev/72/

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/tests/per_workingtree/test_get_parent_ids.py'
2--- breezy/tests/per_workingtree/test_get_parent_ids.py 2017-06-10 00:17:06 +0000
3+++ breezy/tests/per_workingtree/test_get_parent_ids.py 2018-03-24 13:48:13 +0000
4@@ -17,6 +17,7 @@
5
6 """Tests for interface conformance of 'workingtree.get_parent_ids'"""
7
8+from breezy.tests import TestNotApplicable
9 from breezy.tests.per_workingtree import TestCaseWithWorkingTree
10
11
12@@ -39,6 +40,10 @@
13 """Test the correspondence between set pending merges and get_parent_ids."""
14 wt = self.make_branch_and_tree('.')
15 self.assertEqual([], wt.get_parent_ids())
16+ if not wt._format. supports_righthand_parent_id_as_ghost:
17+ raise TestNotApplicable(
18+ 'format does not support right hand side parents '
19+ 'that are ghosts')
20 # the first pending merge replaces the 'last revision' because
21 # 'last revision' is shorthand for 'left most parent'
22 wt.add_pending_merge('foo@azkhazan-123123-abcabc')
23
24=== modified file 'breezy/tests/per_workingtree/test_parents.py'
25--- breezy/tests/per_workingtree/test_parents.py 2018-02-25 15:31:42 +0000
26+++ breezy/tests/per_workingtree/test_parents.py 2018-03-24 13:48:13 +0000
27@@ -28,10 +28,14 @@
28 InventoryDirectory,
29 InventoryLink,
30 )
31-from ...bzr.inventorytree import InventoryRevisionTree
32+from ...bzr.inventorytree import (
33+ InventoryRevisionTree,
34+ InventoryTree,
35+ )
36 from ...sixish import (
37 BytesIO,
38 )
39+from ...tests import TestNotApplicable
40 from ..per_workingtree import TestCaseWithWorkingTree
41 from .. import (
42 features,
43@@ -392,11 +396,8 @@
44
45 def assertDeltaApplicationResultsInExpectedBasis(self, tree, revid, delta,
46 expected_inventory):
47- tree.lock_write()
48- try:
49+ with tree.lock_write():
50 tree.update_basis_by_delta(revid, delta)
51- finally:
52- tree.unlock()
53 # check the last revision was adjusted to rev_id
54 self.assertEqual(revid, tree.last_revision())
55 # check the parents are what we expect
56@@ -404,11 +405,8 @@
57 # check that the basis tree has the inventory we expect from applying
58 # the delta.
59 result_basis = tree.basis_tree()
60- result_basis.lock_read()
61- try:
62+ with result_basis.lock_read():
63 self.assertEqual(expected_inventory, result_basis.root_inventory)
64- finally:
65- result_basis.unlock()
66
67 def make_inv_delta(self, old, new):
68 """Make an inventory delta from two inventories."""
69@@ -430,6 +428,9 @@
70
71 def fake_up_revision(self, tree, revid, shape):
72
73+ if not isinstance(tree, InventoryTree):
74+ raise TestNotApplicable("test requires inventory tree")
75+
76 class ShapeTree(InventoryRevisionTree):
77
78 def __init__(self, shape):
79
80=== modified file 'breezy/tests/per_workingtree/test_remove.py'
81--- breezy/tests/per_workingtree/test_remove.py 2018-01-12 08:52:43 +0000
82+++ breezy/tests/per_workingtree/test_remove.py 2018-03-24 13:48:13 +0000
83@@ -36,7 +36,12 @@
84 tree = self.get_tree(files)
85 tree.add(files)
86 tree.commit(message)
87- self.assertInWorkingTree(files)
88+ if not tree.has_versioned_directories():
89+ self.assertInWorkingTree(
90+ [f for f in files if not f.endswith("/")])
91+ self.assertPathExists(files)
92+ else:
93+ self.assertInWorkingTree(files)
94 return tree
95
96 def assertRemovedAndDeleted(self, files):
97@@ -51,7 +56,6 @@
98 """Check that files and directories are unversioned but not deleted."""
99 tree = self.get_tree(TestRemove.files)
100 tree.add(TestRemove.files)
101- self.assertInWorkingTree(TestRemove.files)
102
103 tree.remove(TestRemove.files)
104 self.assertRemovedAndNotDeleted(TestRemove.files)
105@@ -76,7 +80,6 @@
106 """Removal of newly added files must back them up."""
107 tree = self.get_tree(TestRemove.files)
108 tree.add(TestRemove.files)
109- self.assertInWorkingTree(TestRemove.files)
110 tree.remove(TestRemove.files, keep_files=False)
111 self.assertNotInWorkingTree(TestRemove.files)
112 self.assertPathExists(TestRemove.backup_files)
113@@ -97,7 +100,6 @@
114 tree = self.get_committed_tree(TestRemove.files)
115 for f in TestRemove.rfiles:
116 osutils.delete_any(f)
117- self.assertInWorkingTree(TestRemove.files)
118 self.assertPathDoesNotExist(TestRemove.files)
119 tree.remove(TestRemove.files, keep_files=False)
120 self.assertRemovedAndDeleted(TestRemove.files)
121@@ -110,7 +112,6 @@
122 for f in TestRemove.rfiles:
123 tree.rename_one(f, f+'x')
124 rfilesx = ['bx/cx', 'bx', 'ax', 'dx']
125- self.assertInWorkingTree(rfilesx)
126 self.assertPathExists(rfilesx)
127
128 tree.remove(rfilesx, keep_files=False)
129@@ -126,20 +127,21 @@
130 rfilesx = ['bx/cx', 'bx', 'ax', 'dx']
131 self.build_tree_contents([('ax', 'changed and renamed!'),
132 ('bx/cx', 'changed and renamed!')])
133- self.assertInWorkingTree(rfilesx)
134 self.assertPathExists(rfilesx)
135
136 tree.remove(rfilesx, keep_files=False)
137 self.assertNotInWorkingTree(rfilesx)
138 self.assertPathExists(['bx.~1~/cx.~1~', 'bx.~1~', 'ax.~1~'])
139- self.assertPathDoesNotExist('dx.~1~') # unchanged file
140+ if tree.supports_rename_tracking():
141+ self.assertPathDoesNotExist('dx.~1~') # unchanged file
142+ else:
143+ self.assertPathExists('dx.~1~') # renamed, so appears changed
144 tree._validate()
145
146 def test_force_remove_changed_files(self):
147 """Check that changed files are removed and deleted when forced."""
148 tree = self.get_tree(TestRemove.files)
149 tree.add(TestRemove.files)
150- self.assertInWorkingTree(TestRemove.files)
151
152 tree.remove(TestRemove.files, keep_files=False, force=True)
153 self.assertRemovedAndDeleted(TestRemove.files)
154@@ -201,7 +203,6 @@
155 tree = self.get_tree(files)
156 tree.add(files)
157 ignores.add_runtime_ignores(["*ignored*"])
158- self.assertInWorkingTree(files)
159 self.assertNotEqual(None, tree.is_ignored(files[0]))
160
161 tree.remove(files, keep_files=False)
162@@ -211,7 +212,7 @@
163
164 def test_dont_remove_directory_with_unknowns(self):
165 """Directories with unknowns should be backed up."""
166- directories = ['a/', 'b/', 'c/', 'c/c/']
167+ directories = ['a/', 'b/', 'c/', 'c/c/', 'c/blah']
168 tree = self.get_committed_tree(directories)
169
170 self.build_tree(['a/unknown_file'])
171@@ -288,7 +289,7 @@
172 def test_remove_directory_with_renames(self):
173 """Delete directory with renames in or out."""
174
175- files = ['a/', 'a/file', 'a/directory/', 'b/']
176+ files = ['a/', 'a/file', 'a/directory/', 'a/directory/stuff', 'b/']
177 files_to_move = ['a/file', 'a/directory/']
178
179 tree = self.get_committed_tree(files)

Subscribers

People subscribed via source and target branches