comparison tests/test_fetch_mappings.py @ 1106:5cb6c95e0283 stable

Merge default and stable so I can do stable releases again.
author Augie Fackler <raf@durin42.com>
date Tue, 11 Feb 2014 12:48:49 -0500
parents 28116a204b6a
children 49791c40a8a5
comparison
equal deleted inserted replaced
1020:b5b1fce26f1f 1106:5cb6c95e0283
14 from hgsubversion import svncommands 14 from hgsubversion import svncommands
15 from hgsubversion import util 15 from hgsubversion import util
16 from hgsubversion import verify 16 from hgsubversion import verify
17 17
18 class MapTests(test_util.TestBase): 18 class MapTests(test_util.TestBase):
19 stupid_mode_tests = True
20
19 @property 21 @property
20 def authors(self): 22 def authors(self):
21 return os.path.join(self.tmpdir, 'authormap') 23 return os.path.join(self.tmpdir, 'authormap')
22 24
23 @property 25 @property
30 32
31 @property 33 @property
32 def tagmap(self): 34 def tagmap(self):
33 return os.path.join(self.tmpdir, 'tagmap') 35 return os.path.join(self.tmpdir, 'tagmap')
34 36
35 def test_author_map(self, stupid=False): 37 def test_author_map(self):
36 repo_path = self.load_svndump('replace_trunk_with_branch.svndump') 38 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
37 authormap = open(self.authors, 'w') 39 authormap = open(self.authors, 'w')
38 authormap.write('Augie=Augie Fackler <durin42@gmail.com> # stuffy\n') 40 authormap.write('Augie=Augie Fackler <durin42@gmail.com> # stuffy\n')
39 authormap.write("Augie Fackler <durin42@gmail.com>\n") 41 authormap.write("Augie Fackler <durin42@gmail.com>\n")
40 authormap.close() 42 authormap.close()
41 ui = self.ui(stupid) 43 ui = self.ui()
42 ui.setconfig('hgsubversion', 'authormap', self.authors) 44 ui.setconfig('hgsubversion', 'authormap', self.authors)
43 commands.clone(ui, test_util.fileurl(repo_path), 45 commands.clone(ui, test_util.fileurl(repo_path),
44 self.wc_path, authors=self.authors) 46 self.wc_path, authors=self.authors)
45 self.assertEqual(self.repo[0].user(), 47 self.assertEqual(self.repo[0].user(),
46 'Augie Fackler <durin42@gmail.com>') 48 'Augie Fackler <durin42@gmail.com>')
47 self.assertEqual(self.repo['tip'].user(), 49 self.assertEqual(self.repo['tip'].user(),
48 'evil@5b65bade-98f3-4993-a01f-b7a6710da339') 50 'evil@5b65bade-98f3-4993-a01f-b7a6710da339')
49 51
50 def test_author_map_stupid(self): 52 def test_author_map_closing_author(self):
51 self.test_author_map(True)
52
53 def test_author_map_closing_author(self, stupid=False):
54 repo_path = self.load_svndump('replace_trunk_with_branch.svndump') 53 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
55 authormap = open(self.authors, 'w') 54 authormap = open(self.authors, 'w')
56 authormap.write("evil=Testy <test@test>") 55 authormap.write("evil=Testy <test@test>")
57 authormap.close() 56 authormap.close()
58 ui = self.ui(stupid) 57 ui = self.ui()
59 ui.setconfig('hgsubversion', 'authormap', self.authors) 58 ui.setconfig('hgsubversion', 'authormap', self.authors)
60 commands.clone(ui, test_util.fileurl(repo_path), 59 commands.clone(ui, test_util.fileurl(repo_path),
61 self.wc_path, authors=self.authors) 60 self.wc_path, authors=self.authors)
62 self.assertEqual(self.repo[0].user(), 61 self.assertEqual(self.repo[0].user(),
63 'Augie@5b65bade-98f3-4993-a01f-b7a6710da339') 62 'Augie@5b65bade-98f3-4993-a01f-b7a6710da339')
64 self.assertEqual(self.repo['tip'].user(), 63 self.assertEqual(self.repo['tip'].user(),
65 'Testy <test@test>') 64 'Testy <test@test>')
66 65
67 def test_author_map_closing_author_stupid(self): 66 def test_author_map_no_author(self):
68 self.test_author_map_closing_author(True) 67 repo, repo_path = self.load_and_fetch('no-author.svndump')
69
70 def test_author_map_no_author(self, stupid=False):
71 repo, repo_path = self.load_and_fetch('no-author.svndump',
72 stupid=stupid)
73 users = set(self.repo[r].user() for r in self.repo) 68 users = set(self.repo[r].user() for r in self.repo)
74 expected_users = ['(no author)@%s' % self.repo.svnmeta().uuid] 69 expected_users = ['(no author)@%s' % self.repo.svnmeta().uuid]
75 self.assertEqual(sorted(users), expected_users) 70 self.assertEqual(sorted(users), expected_users)
76 test_util.rmtree(self.wc_path) 71 test_util.rmtree(self.wc_path)
77 72
78 authormap = open(self.authors, 'w') 73 authormap = open(self.authors, 'w')
79 authormap.write("(no author)=Testy <test@example.com>") 74 authormap.write("(no author)=Testy <test@example.com>")
80 authormap.close() 75 authormap.close()
81 ui = self.ui(stupid) 76 ui = self.ui()
82 ui.setconfig('hgsubversion', 'authormap', self.authors) 77 ui.setconfig('hgsubversion', 'authormap', self.authors)
83 commands.clone(ui, test_util.fileurl(repo_path), 78 commands.clone(ui, test_util.fileurl(repo_path),
84 self.wc_path, authors=self.authors) 79 self.wc_path, authors=self.authors)
85 users = set(self.repo[r].user() for r in self.repo) 80 users = set(self.repo[r].user() for r in self.repo)
86 expected_users = ['Testy <test@example.com>'] 81 expected_users = ['Testy <test@example.com>']
87 self.assertEqual(sorted(users), expected_users) 82 self.assertEqual(sorted(users), expected_users)
88
89 def test_author_map_no_author_stupid(self):
90 self.test_author_map_no_author(True)
91 83
92 def test_author_map_no_overwrite(self): 84 def test_author_map_no_overwrite(self):
93 cwd = os.path.dirname(__file__) 85 cwd = os.path.dirname(__file__)
94 orig = os.path.join(cwd, 'fixtures', 'author-map-test.txt') 86 orig = os.path.join(cwd, 'fixtures', 'author-map-test.txt')
95 new = open(self.authors, 'w') 87 new = open(self.authors, 'w')
99 fromself = set(test) 91 fromself = set(test)
100 test.load(orig) 92 test.load(orig)
101 all_tests = set(test) 93 all_tests = set(test)
102 self.assertEqual(fromself.symmetric_difference(all_tests), set()) 94 self.assertEqual(fromself.symmetric_difference(all_tests), set())
103 95
104 def _loadwithfilemap(self, svndump, filemapcontent, stupid=False, 96 def test_author_map_caseignore(self):
97 repo_path = self.load_svndump('replace_trunk_with_branch.svndump')
98 authormap = open(self.authors, 'w')
99 authormap.write('augie=Augie Fackler <durin42@gmail.com> # stuffy\n')
100 authormap.write("Augie Fackler <durin42@gmail.com>\n")
101 authormap.close()
102 ui = self.ui()
103 ui.setconfig('hgsubversion', 'authormap', self.authors)
104 ui.setconfig('hgsubversion', 'caseignoreauthors', True)
105 commands.clone(ui, test_util.fileurl(repo_path),
106 self.wc_path, authors=self.authors)
107 self.assertEqual(self.repo[0].user(),
108 'Augie Fackler <durin42@gmail.com>')
109 self.assertEqual(self.repo['tip'].user(),
110 'evil@5b65bade-98f3-4993-a01f-b7a6710da339')
111
112 def _loadwithfilemap(self, svndump, filemapcontent,
105 failonmissing=True): 113 failonmissing=True):
106 repo_path = self.load_svndump(svndump) 114 repo_path = self.load_svndump(svndump)
107 filemap = open(self.filemap, 'w') 115 filemap = open(self.filemap, 'w')
108 filemap.write(filemapcontent) 116 filemap.write(filemapcontent)
109 filemap.close() 117 filemap.close()
110 ui = self.ui(stupid) 118 ui = self.ui()
111 ui.setconfig('hgsubversion', 'filemap', self.filemap) 119 ui.setconfig('hgsubversion', 'filemap', self.filemap)
112 ui.setconfig('hgsubversion', 'failoninvalidreplayfile', 'true') 120 ui.setconfig('hgsubversion', 'failoninvalidreplayfile', 'true')
113 ui.setconfig('hgsubversion', 'failonmissing', failonmissing) 121 ui.setconfig('hgsubversion', 'failonmissing', failonmissing)
114 commands.clone(ui, test_util.fileurl(repo_path), 122 commands.clone(ui, test_util.fileurl(repo_path),
115 self.wc_path, filemap=self.filemap) 123 self.wc_path, filemap=self.filemap)
116 return self.repo 124 return self.repo
117 125
118 def test_file_map(self, stupid=False): 126 @test_util.requiresreplay
127 def test_file_map(self):
119 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump', 128 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump',
120 "include alpha\n", stupid) 129 "include alpha\n")
121 self.assertEqual(node.hex(repo[0].node()), '88e2c7492d83e4bf30fbb2dcbf6aa24d60ac688d') 130 self.assertEqual(node.hex(repo[0].node()), '88e2c7492d83e4bf30fbb2dcbf6aa24d60ac688d')
122 self.assertEqual(node.hex(repo['default'].node()), 'e524296152246b3837fe9503c83b727075835155') 131 self.assertEqual(node.hex(repo['default'].node()), 'e524296152246b3837fe9503c83b727075835155')
123 132
124 def test_file_map_stupid(self): 133 @test_util.requiresreplay
125 # TODO: re-enable test if we ever reinstate this feature 134 def test_file_map_exclude(self):
126 self.assertRaises(hgutil.Abort, self.test_file_map, True)
127
128 def test_file_map_exclude(self, stupid=False):
129 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump', 135 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump',
130 "exclude alpha\n", stupid) 136 "exclude alpha\n")
131 self.assertEqual(node.hex(repo[0].node()), '2c48f3525926ab6c8b8424bcf5eb34b149b61841') 137 self.assertEqual(node.hex(repo[0].node()), '2c48f3525926ab6c8b8424bcf5eb34b149b61841')
132 self.assertEqual(node.hex(repo['default'].node()), 'b37a3c0297b71f989064d9b545b5a478bbed7cc1') 138 self.assertEqual(node.hex(repo['default'].node()), 'b37a3c0297b71f989064d9b545b5a478bbed7cc1')
133 139
134 def test_file_map_exclude_stupid(self): 140 @test_util.requiresreplay
135 # TODO: re-enable test if we ever reinstate this feature
136 self.assertRaises(hgutil.Abort, self.test_file_map_exclude, True)
137
138 def test_file_map_rule_order(self): 141 def test_file_map_rule_order(self):
139 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump', 142 repo = self._loadwithfilemap('replace_trunk_with_branch.svndump',
140 "exclude alpha\ninclude .\nexclude gamma\n") 143 "exclude alpha\ninclude .\nexclude gamma\n")
141 # The exclusion of alpha is overridden by the later rule to 144 # The exclusion of alpha is overridden by the later rule to
142 # include all of '.', whereas gamma should remain excluded 145 # include all of '.', whereas gamma should remain excluded
144 self.assertEqual(self.repo[0].manifest().keys(), 147 self.assertEqual(self.repo[0].manifest().keys(),
145 ['alpha', 'beta']) 148 ['alpha', 'beta'])
146 self.assertEqual(self.repo['default'].manifest().keys(), 149 self.assertEqual(self.repo['default'].manifest().keys(),
147 ['alpha', 'beta']) 150 ['alpha', 'beta'])
148 151
152 @test_util.requiresreplay
149 def test_file_map_copy(self): 153 def test_file_map_copy(self):
150 # Exercise excluding files copied from a non-excluded directory. 154 # Exercise excluding files copied from a non-excluded directory.
151 # There will be missing files as we are copying from an excluded 155 # There will be missing files as we are copying from an excluded
152 # directory. 156 # directory.
153 repo = self._loadwithfilemap('copies.svndump', "exclude dir2\n", 157 repo = self._loadwithfilemap('copies.svndump', "exclude dir2\n",
154 failonmissing=False) 158 failonmissing=False)
155 self.assertEqual(['dir/a', 'dir3/a'], list(repo[2])) 159 self.assertEqual(['dir/a', 'dir3/a'], list(repo[2]))
156 160
161 @test_util.requiresreplay
157 def test_file_map_exclude_copy_source_and_dest(self): 162 def test_file_map_exclude_copy_source_and_dest(self):
158 # dir3 is excluded and copied from dir2 which is also excluded. 163 # dir3 is excluded and copied from dir2 which is also excluded.
159 # dir3 files should not be marked as missing and fetched. 164 # dir3 files should not be marked as missing and fetched.
160 repo = self._loadwithfilemap('copies.svndump', 165 repo = self._loadwithfilemap('copies.svndump',
161 "exclude dir2\nexclude dir3\n") 166 "exclude dir2\nexclude dir3\n")
162 self.assertEqual(['dir/a'], list(repo[2])) 167 self.assertEqual(['dir/a'], list(repo[2]))
163 168
169 @test_util.requiresreplay
164 def test_file_map_include_file_exclude_dir(self): 170 def test_file_map_include_file_exclude_dir(self):
165 # dir3 is excluded but we want dir3/a, which is also copied from 171 # dir3 is excluded but we want dir3/a, which is also copied from
166 # an exluded dir2. dir3/a should be fetched. 172 # an exluded dir2. dir3/a should be fetched.
167 repo = self._loadwithfilemap('copies.svndump', 173 repo = self._loadwithfilemap('copies.svndump',
168 "include .\nexclude dir2\nexclude dir3\ninclude dir3/a\n", 174 "include .\nexclude dir2\nexclude dir3\ninclude dir3/a\n",
169 failonmissing=False) 175 failonmissing=False)
170 self.assertEqual(['dir/a', 'dir3/a'], list(repo[2])) 176 self.assertEqual(['dir/a', 'dir3/a'], list(repo[2]))
171 177
178 @test_util.requiresreplay
172 def test_file_map_delete_dest(self): 179 def test_file_map_delete_dest(self):
173 repo = self._loadwithfilemap('copies.svndump', 'exclude dir3\n') 180 repo = self._loadwithfilemap('copies.svndump', 'exclude dir3\n')
174 self.assertEqual(['dir/a', 'dir2/a'], list(repo[3])) 181 self.assertEqual(['dir/a', 'dir2/a'], list(repo[3]))
175 182
176 def test_branchmap(self, stupid=False): 183 def test_branchmap(self):
177 repo_path = self.load_svndump('branchmap.svndump') 184 repo_path = self.load_svndump('branchmap.svndump')
178 branchmap = open(self.branchmap, 'w') 185 branchmap = open(self.branchmap, 'w')
179 branchmap.write("badname = good-name # stuffy\n") 186 branchmap.write("badname = good-name # stuffy\n")
180 branchmap.write("feature = default\n") 187 branchmap.write("feature = default\n")
181 branchmap.close() 188 branchmap.close()
182 ui = self.ui(stupid) 189 ui = self.ui()
183 ui.setconfig('hgsubversion', 'branchmap', self.branchmap) 190 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
184 commands.clone(ui, test_util.fileurl(repo_path), 191 commands.clone(ui, test_util.fileurl(repo_path),
185 self.wc_path, branchmap=self.branchmap) 192 self.wc_path, branchmap=self.branchmap)
186 branches = set(self.repo[i].branch() for i in self.repo) 193 branches = set(self.repo[i].branch() for i in self.repo)
187 self.assert_('badname' not in branches) 194 self.assert_('badname' not in branches)
188 self.assert_('good-name' in branches) 195 self.assert_('good-name' in branches)
189 self.assertEquals(self.repo[2].branch(), 'default') 196 self.assertEquals(self.repo[2].branch(), 'default')
190 197
191 def test_branchmap_stupid(self): 198 def test_branchmap_tagging(self):
192 self.test_branchmap(True)
193
194 def test_branchmap_tagging(self, stupid=False):
195 '''test tagging a renamed branch, which used to raise an exception''' 199 '''test tagging a renamed branch, which used to raise an exception'''
196 repo_path = self.load_svndump('commit-to-tag.svndump') 200 repo_path = self.load_svndump('commit-to-tag.svndump')
197 branchmap = open(self.branchmap, 'w') 201 branchmap = open(self.branchmap, 'w')
198 branchmap.write("magic = art\n") 202 branchmap.write("magic = art\n")
199 branchmap.close() 203 branchmap.close()
200 ui = self.ui(stupid) 204 ui = self.ui()
201 ui.setconfig('hgsubversion', 'branchmap', self.branchmap) 205 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
202 commands.clone(ui, test_util.fileurl(repo_path), 206 commands.clone(ui, test_util.fileurl(repo_path),
203 self.wc_path, branchmap=self.branchmap) 207 self.wc_path, branchmap=self.branchmap)
204 branches = set(self.repo[i].branch() for i in self.repo) 208 branches = set(self.repo[i].branch() for i in self.repo)
205 self.assertEquals(sorted(branches), ['art', 'closeme']) 209 self.assertEquals(sorted(branches), ['art', 'closeme'])
206 210
207 def test_branchmap_tagging_stupid(self): 211 def test_branchmap_empty_commit(self):
208 self.test_branchmap_tagging(True)
209
210 def test_branchmap_empty_commit(self, stupid=False):
211 '''test mapping an empty commit on a renamed branch''' 212 '''test mapping an empty commit on a renamed branch'''
212 repo_path = self.load_svndump('propset-branch.svndump') 213 repo_path = self.load_svndump('propset-branch.svndump')
213 branchmap = open(self.branchmap, 'w') 214 branchmap = open(self.branchmap, 'w')
214 branchmap.write("the-branch = bob\n") 215 branchmap.write("the-branch = bob\n")
215 branchmap.close() 216 branchmap.close()
216 ui = self.ui(stupid) 217 ui = self.ui()
217 ui.setconfig('hgsubversion', 'branchmap', self.branchmap) 218 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
218 commands.clone(ui, test_util.fileurl(repo_path), 219 commands.clone(ui, test_util.fileurl(repo_path),
219 self.wc_path, branchmap=self.branchmap) 220 self.wc_path, branchmap=self.branchmap)
220 branches = set(self.repo[i].branch() for i in self.repo) 221 branches = set(self.repo[i].branch() for i in self.repo)
221 self.assertEquals(sorted(branches), ['bob', 'default']) 222 self.assertEquals(sorted(branches), ['bob', 'default'])
222 223
223 def test_branchmap_empty_commit_stupid(self): 224 def test_branchmap_combine(self):
224 '''test mapping an empty commit on a renamed branch (stupid)'''
225 self.test_branchmap_empty_commit(True)
226
227 def test_branchmap_combine(self, stupid=False):
228 '''test combining two branches, but retaining heads''' 225 '''test combining two branches, but retaining heads'''
229 repo_path = self.load_svndump('branchmap.svndump') 226 repo_path = self.load_svndump('branchmap.svndump')
230 branchmap = open(self.branchmap, 'w') 227 branchmap = open(self.branchmap, 'w')
231 branchmap.write("badname = default\n") 228 branchmap.write("badname = default\n")
232 branchmap.write("feature = default\n") 229 branchmap.write("feature = default\n")
233 branchmap.close() 230 branchmap.close()
234 ui = self.ui(stupid) 231 ui = self.ui()
235 ui.setconfig('hgsubversion', 'branchmap', self.branchmap) 232 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
236 commands.clone(ui, test_util.fileurl(repo_path), 233 commands.clone(ui, test_util.fileurl(repo_path),
237 self.wc_path, branchmap=self.branchmap) 234 self.wc_path, branchmap=self.branchmap)
238 branches = set(self.repo[i].branch() for i in self.repo) 235 branches = set(self.repo[i].branch() for i in self.repo)
239 self.assertEquals(sorted(branches), ['default']) 236 self.assertEquals(sorted(branches), ['default'])
243 # test that the mapping does not affect branch info 240 # test that the mapping does not affect branch info
244 branches = self.repo.svnmeta().branches 241 branches = self.repo.svnmeta().branches
245 self.assertEquals(sorted(branches.keys()), 242 self.assertEquals(sorted(branches.keys()),
246 [None, 'badname', 'feature']) 243 [None, 'badname', 'feature'])
247 244
248 def test_branchmap_combine_stupid(self): 245 def test_branchmap_rebuildmeta(self):
249 '''test combining two branches, but retaining heads (stupid)'''
250 self.test_branchmap_combine(True)
251
252 def test_branchmap_rebuildmeta(self, stupid=False):
253 '''test rebuildmeta on a branchmapped clone''' 246 '''test rebuildmeta on a branchmapped clone'''
254 repo_path = self.load_svndump('branchmap.svndump') 247 repo_path = self.load_svndump('branchmap.svndump')
255 branchmap = open(self.branchmap, 'w') 248 branchmap = open(self.branchmap, 'w')
256 branchmap.write("badname = dit\n") 249 branchmap.write("badname = dit\n")
257 branchmap.write("feature = dah\n") 250 branchmap.write("feature = dah\n")
258 branchmap.close() 251 branchmap.close()
259 ui = self.ui(stupid) 252 ui = self.ui()
260 ui.setconfig('hgsubversion', 'branchmap', self.branchmap) 253 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
261 commands.clone(ui, test_util.fileurl(repo_path), 254 commands.clone(ui, test_util.fileurl(repo_path),
262 self.wc_path, branchmap=self.branchmap) 255 self.wc_path, branchmap=self.branchmap)
263 originfo = self.repo.svnmeta().branches 256 originfo = self.repo.svnmeta().branches
264 257
265 # clone & rebuild 258 # clone & rebuild
266 ui = self.ui(stupid) 259 ui = self.ui()
267 src, dest = test_util.hgclone(ui, self.wc_path, self.wc_path + '_clone', 260 src, dest = test_util.hgclone(ui, self.wc_path, self.wc_path + '_clone',
268 update=False) 261 update=False)
269 src = test_util.getlocalpeer(src) 262 src = test_util.getlocalpeer(src)
270 dest = test_util.getlocalpeer(dest) 263 dest = test_util.getlocalpeer(dest)
271 svncommands.rebuildmeta(ui, dest, 264 svncommands.rebuildmeta(ui, dest,
274 # just check the keys; assume the contents are unaffected by the branch 267 # just check the keys; assume the contents are unaffected by the branch
275 # map and thus properly tested by other tests 268 # map and thus properly tested by other tests
276 self.assertEquals(sorted(src.svnmeta().branches), 269 self.assertEquals(sorted(src.svnmeta().branches),
277 sorted(dest.svnmeta().branches)) 270 sorted(dest.svnmeta().branches))
278 271
279 def test_branchmap_rebuildmeta_stupid(self): 272 def test_branchmap_verify(self):
280 '''test rebuildmeta on a branchmapped clone (stupid)'''
281 self.test_branchmap_rebuildmeta(True)
282
283 def test_branchmap_verify(self, stupid=False):
284 '''test verify on a branchmapped clone''' 273 '''test verify on a branchmapped clone'''
285 repo_path = self.load_svndump('branchmap.svndump') 274 repo_path = self.load_svndump('branchmap.svndump')
286 branchmap = open(self.branchmap, 'w') 275 branchmap = open(self.branchmap, 'w')
287 branchmap.write("badname = dit\n") 276 branchmap.write("badname = dit\n")
288 branchmap.write("feature = dah\n") 277 branchmap.write("feature = dah\n")
289 branchmap.close() 278 branchmap.close()
290 ui = self.ui(stupid) 279 ui = self.ui()
291 ui.setconfig('hgsubversion', 'branchmap', self.branchmap) 280 ui.setconfig('hgsubversion', 'branchmap', self.branchmap)
292 commands.clone(ui, test_util.fileurl(repo_path), 281 commands.clone(ui, test_util.fileurl(repo_path),
293 self.wc_path, branchmap=self.branchmap) 282 self.wc_path, branchmap=self.branchmap)
294 repo = self.repo 283 repo = self.repo
295 284
296 for r in repo: 285 for r in repo:
297 self.assertEquals(verify.verify(ui, repo, rev=r), 0) 286 self.assertEquals(verify.verify(ui, repo, rev=r), 0)
298
299 def test_branchmap_verify_stupid(self):
300 '''test verify on a branchmapped clone (stupid)'''
301 self.test_branchmap_verify(True)
302 287
303 def test_branchmap_no_replacement(self): 288 def test_branchmap_no_replacement(self):
304 ''' 289 '''
305 test that empty mappings are rejected 290 test that empty mappings are rejected
306 291
313 branchmap.write("closeme =\n") 298 branchmap.write("closeme =\n")
314 branchmap.close() 299 branchmap.close()
315 self.assertRaises(hgutil.Abort, 300 self.assertRaises(hgutil.Abort,
316 maps.BranchMap, self.ui(), self.branchmap) 301 maps.BranchMap, self.ui(), self.branchmap)
317 302
318 def test_tagmap(self, stupid=False): 303 def test_tagmap(self):
319 repo_path = self.load_svndump('basic_tag_tests.svndump') 304 repo_path = self.load_svndump('basic_tag_tests.svndump')
320 tagmap = open(self.tagmap, 'w') 305 tagmap = open(self.tagmap, 'w')
321 tagmap.write("tag_r3 = 3.x # stuffy\n") 306 tagmap.write("tag_r3 = 3.x # stuffy\n")
322 tagmap.write("copied_tag = \n") 307 tagmap.write("copied_tag = \n")
323 tagmap.close() 308 tagmap.close()
324 309
325 ui = self.ui(stupid) 310 ui = self.ui()
326 ui.setconfig('hgsubversion', 'tagmap', self.tagmap) 311 ui.setconfig('hgsubversion', 'tagmap', self.tagmap)
327 commands.clone(ui, test_util.fileurl(repo_path), 312 commands.clone(ui, test_util.fileurl(repo_path),
328 self.wc_path, tagmap=self.tagmap) 313 self.wc_path, tagmap=self.tagmap)
329 tags = self.repo.tags() 314 tags = self.repo.tags()
330 assert 'tag_r3' not in tags 315 assert 'tag_r3' not in tags
331 assert '3.x' in tags 316 assert '3.x' in tags
332 assert 'copied_tag' not in tags 317 assert 'copied_tag' not in tags
333 318
334 def test_tagmap_stupid(self): 319 def test_tagren_changed(self):
335 self.test_tagmap(True)
336
337 def test_tagren_changed(self, stupid=False):
338 repo_path = self.load_svndump('commit-to-tag.svndump') 320 repo_path = self.load_svndump('commit-to-tag.svndump')
339 tagmap = open(self.tagmap, 'w') 321 tagmap = open(self.tagmap, 'w')
340 tagmap.write("edit-at-create = edit-past\n") 322 tagmap.write("edit-at-create = edit-past\n")
341 tagmap.write("also-edit = \n") 323 tagmap.write("also-edit = \n")
342 tagmap.write("will-edit = edit-future\n") 324 tagmap.write("will-edit = edit-future\n")
343 tagmap.close() 325 tagmap.close()
344 326
345 ui = self.ui(stupid) 327 ui = self.ui()
346 ui.setconfig('hgsubversion', 'tagmap', self.tagmap) 328 ui.setconfig('hgsubversion', 'tagmap', self.tagmap)
347 commands.clone(ui, test_util.fileurl(repo_path), 329 commands.clone(ui, test_util.fileurl(repo_path),
348 self.wc_path, tagmap=self.tagmap) 330 self.wc_path, tagmap=self.tagmap)
349 tags = self.repo.tags() 331 tags = self.repo.tags()
350 332
351 def test_tagren_changed_stupid(self): 333 def test_empty_log_message(self):
352 self.test_tagren_changed(True) 334 repo, repo_path = self.load_and_fetch('empty-log-message.svndump')
353
354 def test_empty_log_message(self, stupid=False):
355 repo, repo_path = self.load_and_fetch('empty-log-message.svndump',
356 stupid=stupid)
357 335
358 self.assertEqual(repo['tip'].description(), '') 336 self.assertEqual(repo['tip'].description(), '')
359 337
360 test_util.rmtree(self.wc_path) 338 test_util.rmtree(self.wc_path)
361 339
362 ui = self.ui(stupid) 340 ui = self.ui()
363 ui.setconfig('hgsubversion', 'defaultmessage', 'blyf') 341 ui.setconfig('hgsubversion', 'defaultmessage', 'blyf')
364 commands.clone(ui, test_util.fileurl(repo_path), self.wc_path) 342 commands.clone(ui, test_util.fileurl(repo_path), self.wc_path)
365 343
366 self.assertEqual(self.repo['tip'].description(), 'blyf') 344 self.assertEqual(self.repo['tip'].description(), 'blyf')
367
368
369 def test_empty_log_message_stupid(self):
370 self.test_empty_log_message(True)
371
372 def suite():
373 return unittest.TestLoader().loadTestsFromTestCase(MapTests)