Merge lp:~jelmer/brz/gpghome into lp:brz

Proposed by Jelmer Vernooij
Status: Superseded
Proposed branch: lp:~jelmer/brz/gpghome
Merge into: lp:brz
Diff against target: 201 lines (+33/-32)
3 files modified
breezy/tests/__init__.py (+2/-0)
breezy/tests/per_repository/test_commit_builder.py (+27/-32)
doc/en/release-notes/brz-3.0.txt (+4/-0)
To merge this branch: bzr merge lp:~jelmer/brz/gpghome
Reviewer Review Type Date Requested Status
Breezy developers Pending
Review via email: mp+329741@code.launchpad.net

This proposal has been superseded by a proposal from 2017-08-28.

Description of the change

Set GNUPGHOME during tests, to prevent modifying users' test directory and test isolation issues.

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

Change looks fine, but is based on an unlanded branch.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/tests/__init__.py'
2--- breezy/tests/__init__.py 2017-08-27 01:58:16 +0000
3+++ breezy/tests/__init__.py 2017-08-28 15:15:58 +0000
4@@ -141,6 +141,7 @@
5 isolated_environ = {
6 'BRZ_HOME': None,
7 'HOME': None,
8+ 'GNUPGHOME': None,
9 'XDG_CONFIG_HOME': None,
10 # brz now uses the Win32 API and doesn't rely on APPDATA, but the
11 # tests do check our impls match APPDATA
12@@ -2704,6 +2705,7 @@
13 test_home_dir = test_home_dir.encode(sys.getfilesystemencoding())
14 self.overrideEnv('HOME', test_home_dir)
15 self.overrideEnv('BRZ_HOME', test_home_dir)
16+ self.overrideEnv('GNUPGHOME', os.path.join(test_home_dir, '.gnupg'))
17
18 def setup_smart_server_with_call_log(self):
19 """Sets up a smart server as the transport server with a call log."""
20
21=== modified file 'breezy/tests/per_repository/test_commit_builder.py'
22--- breezy/tests/per_repository/test_commit_builder.py 2017-08-07 21:57:48 +0000
23+++ breezy/tests/per_repository/test_commit_builder.py 2017-08-28 15:15:58 +0000
24@@ -206,18 +206,19 @@
25 def test_record_delete_record_iter_changes(self):
26 tree = self.make_branch_and_tree(".")
27 self.build_tree(["foo"])
28- tree.add(["foo"], ["foo-id"])
29+ tree.add(["foo"])
30+ foo_id = tree.path2id('foo')
31 rev_id = tree.commit("added foo")
32 tree.lock_write()
33 try:
34 builder = tree.branch.get_commit_builder([rev_id])
35 try:
36- delete_change = ('foo-id', ('foo', None), True, (True, False),
37+ delete_change = (foo_id, ('foo', None), True, (True, False),
38 (tree.path2id(''), None), ('foo', None), ('file', None),
39 (False, None))
40 list(builder.record_iter_changes(tree, rev_id,
41 [delete_change]))
42- self.assertEqual(("foo", None, "foo-id", None),
43+ self.assertEqual(("foo", None, foo_id, None),
44 builder.get_basis_delta()[0])
45 self.assertTrue(builder.any_changes())
46 builder.finish_inventory()
47@@ -295,8 +296,8 @@
48 tree2.get_file_revision(tree2.get_root_id()))
49
50 def _add_commit_check_unchanged(self, tree, name, mini_commit=None):
51- tree.add([name], [name + 'id'])
52- self._commit_check_unchanged(tree, name, name + 'id',
53+ tree.add([name])
54+ self._commit_check_unchanged(tree, name, tree.path2id(name),
55 mini_commit=mini_commit)
56
57 def _commit_check_unchanged(self, tree, name, file_id, mini_commit=None):
58@@ -321,18 +322,18 @@
59 # of the dir even the dirs contents are changed.
60 tree = self.make_branch_and_tree('.')
61 self.build_tree(['dir/'])
62- tree.add(['dir'], ['dirid'])
63+ tree.add(['dir'])
64+ dir_id = tree.path2id('dir')
65 rev1 = tree.commit('')
66 self.build_tree(['dir/content'])
67- tree.add(['dir/content'], ['contentid'])
68+ tree.add(['dir/content'])
69 rev2 = tree.commit('')
70 tree1, tree2 = self._get_revtrees(tree, [rev1, rev2])
71- self.assertEqual(rev1, tree1.get_file_revision('dirid'))
72- self.assertEqual(rev1, tree2.get_file_revision('dirid'))
73- file_id = 'dirid'
74+ self.assertEqual(rev1, tree1.get_file_revision(dir_id))
75+ self.assertEqual(rev1, tree2.get_file_revision(dir_id))
76 expected_graph = {}
77- expected_graph[(file_id, rev1)] = ()
78- self.assertFileGraph(expected_graph, tree, (file_id, rev1))
79+ expected_graph[(dir_id, rev1)] = ()
80+ self.assertFileGraph(expected_graph, tree, (dir_id, rev1))
81
82 def test_last_modified_revision_after_commit_file_unchanged(self):
83 # committing without changing a file does not change the last modified.
84@@ -444,10 +445,9 @@
85 mini_commit=self.mini_commit_record_iter_changes)
86
87 def _add_commit_change_check_changed(self, tree, name, changer,
88- expect_fs_hash=False, mini_commit=None, file_id=None):
89- if file_id is None:
90- file_id = name + 'id'
91- tree.add([name], [file_id])
92+ expect_fs_hash=False, mini_commit=None):
93+ tree.add([name])
94+ file_id = tree.path2id(name)
95 self._commit_change_check_changed(
96 tree, name, file_id,
97 changer, expect_fs_hash=expect_fs_hash, mini_commit=mini_commit)
98@@ -556,15 +556,13 @@
99 tree = self.make_branch_and_tree('.')
100 self.build_tree(['file'])
101 def change_file():
102- tree.put_file_bytes_non_atomic('fileid', 'new content')
103+ tree.put_file_bytes_non_atomic(tree.path2id('file'), 'new content')
104 self._add_commit_change_check_changed(tree, 'file', change_file,
105 expect_fs_hash=True,
106 mini_commit=self.mini_commit_record_iter_changes)
107
108 def _test_last_mod_rev_after_content_link_changes(
109- self, link, target, newtarget, file_id=None):
110- if file_id is None:
111- file_id = link
112+ self, link, target, newtarget):
113 # changing a link changes the last modified.
114 self.requireFeature(features.SymlinkFeature)
115 tree = self.make_branch_and_tree('.')
116@@ -574,8 +572,7 @@
117 os.symlink(newtarget, link)
118 self._add_commit_change_check_changed(
119 tree, link, change_link,
120- mini_commit=self.mini_commit_record_iter_changes,
121- file_id=file_id)
122+ mini_commit=self.mini_commit_record_iter_changes)
123
124 def test_last_modified_rev_after_content_link_changes(self):
125 self._test_last_mod_rev_after_content_link_changes(
126@@ -584,12 +581,10 @@
127 def test_last_modified_rev_after_content_unicode_link_changes(self):
128 self.requireFeature(features.UnicodeFilenameFeature)
129 self._test_last_mod_rev_after_content_link_changes(
130- u'li\u1234nk', u'targ\N{Euro Sign}t', u'n\N{Euro Sign}wtarget',
131-
132- file_id=u'li\u1234nk'.encode('UTF-8'))
133+ u'li\u1234nk', u'targ\N{Euro Sign}t', u'n\N{Euro Sign}wtarget')
134
135 def _commit_sprout(self, tree, name):
136- tree.add([name], [name + 'id'])
137+ tree.add([name])
138 rev_id = tree.commit('')
139 return rev_id, tree.controldir.sprout('t2').open_workingtree()
140
141@@ -601,6 +596,7 @@
142 mini_commit=None):
143 """Do a rename in both trees."""
144 rev1, tree2 = self._commit_sprout(tree1, name)
145+ file_id = tree2.path2id(name)
146 # change both sides equally
147 rev2 = self._rename_in_tree(tree1, name)
148 rev3 = self._rename_in_tree(tree2, name)
149@@ -608,8 +604,7 @@
150 rev4 = mini_commit(tree1, 'new_' + name, 'new_' + name,
151 expect_fs_hash=expect_fs_hash)
152 tree3, = self._get_revtrees(tree1, [rev4])
153- self.assertEqual(rev4, tree3.get_file_revision(name + 'id'))
154- file_id = name + 'id'
155+ self.assertEqual(rev4, tree3.get_file_revision(file_id))
156 expected_graph = {}
157 expected_graph[(file_id, rev1)] = ()
158 expected_graph[(file_id, rev2)] = ((file_id, rev1),)
159@@ -646,6 +641,7 @@
160 # in the inventory.
161 # Part 1: change in the merged branch.
162 rev1, tree2 = self._commit_sprout(tree1, name)
163+ file_id = tree2.path2id(name)
164 # change on the other side to merge back
165 rev2 = self._rename_in_tree(tree2, name)
166 tree1.merge_from_branch(tree2.branch)
167@@ -653,8 +649,7 @@
168 rev3 = mini_commit(in_tree, name, 'new_' + name, False,
169 delta_against_basis=changed_in_tree)
170 tree3, = self._get_revtrees(in_tree, [rev2])
171- self.assertEqual(rev2, tree3.get_file_revision(name + 'id'))
172- file_id = name + 'id'
173+ self.assertEqual(rev2, tree3.get_file_revision(file_id))
174 expected_graph = {}
175 expected_graph[(file_id, rev1)] = ()
176 expected_graph[(file_id, rev2)] = ((file_id, rev1),)
177@@ -676,8 +671,8 @@
178 tree2 = tree1.controldir.sprout('t2').open_workingtree()
179 # make and commit on the other side to merge back
180 make('t2/name')
181- file_id = 'nameid'
182- tree2.add(['name'], [file_id])
183+ tree2.add(['name'])
184+ file_id = tree2.path2id('name')
185 rev2 = tree2.commit('')
186 tree1.merge_from_branch(tree2.branch)
187 rev3 = mini_commit(tree1, None, 'name', False)
188
189=== modified file 'doc/en/release-notes/brz-3.0.txt'
190--- doc/en/release-notes/brz-3.0.txt 2017-08-27 14:24:18 +0000
191+++ doc/en/release-notes/brz-3.0.txt 2017-08-28 15:15:58 +0000
192@@ -215,5 +215,9 @@
193 outputs subunit v2.
194 (Jelmer Vernooij, #1699346, #661205)
195
196+ * Set the ``GPGHOME`` environment variable during testing, to prevent
197+ e.g. leaking keys into the users' GNUPG directory.
198+ (Jelmer Vernooij, #843885)
199+
200 ..
201 vim: tw=74 ft=rst ff=unix

Subscribers

People subscribed via source and target branches