Mercurial > hgsubversion
comparison tests/test_push_command.py @ 49:2bc4999a89d3
Add tests for a bunch more cases in pushing to svn.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Wed, 29 Oct 2008 22:58:52 -0500 |
parents | d87b57c719f0 |
children | 80b923ab242b |
comparison
equal
deleted
inserted
replaced
48:d87b57c719f0 | 49:2bc4999a89d3 |
---|---|
271 push_cmd.push_revisions_to_subversion(ui.ui(), repo=self.repo, | 271 push_cmd.push_revisions_to_subversion(ui.ui(), repo=self.repo, |
272 hg_repo_path=self.wc_path, | 272 hg_repo_path=self.wc_path, |
273 svn_url='file://' + self.repo_path) | 273 svn_url='file://' + self.repo_path) |
274 tip = self.repo['tip'] | 274 tip = self.repo['tip'] |
275 self.assertNotEqual(tip.node(), new_hash) | 275 self.assertNotEqual(tip.node(), new_hash) |
276 self.assert_('@' in tip.user()) | |
276 self.assertEqual(tip['gamma'].flags(), 'x') | 277 self.assertEqual(tip['gamma'].flags(), 'x') |
277 self.assertEqual(tip['gamma'].data(), 'foo') | 278 self.assertEqual(tip['gamma'].data(), 'foo') |
278 self.assertEqual([x for x in tip.manifest().keys() if 'x' not in | 279 self.assertEqual([x for x in tip.manifest().keys() if 'x' not in |
279 tip[x].flags()], ['alpha', 'beta', 'adding_file', ]) | 280 tip[x].flags()], ['alpha', 'beta', 'adding_file', ]) |
280 | 281 |
306 self.assertNotEqual(tip.node(), new_hash) | 307 self.assertNotEqual(tip.node(), new_hash) |
307 self.assertEqual(tip['gamma'].flags(), 'l') | 308 self.assertEqual(tip['gamma'].flags(), 'l') |
308 self.assertEqual(tip['gamma'].data(), 'foo') | 309 self.assertEqual(tip['gamma'].data(), 'foo') |
309 self.assertEqual([x for x in tip.manifest().keys() if 'l' not in | 310 self.assertEqual([x for x in tip.manifest().keys() if 'l' not in |
310 tip[x].flags()], ['alpha', 'beta', 'adding_file', ]) | 311 tip[x].flags()], ['alpha', 'beta', 'adding_file', ]) |
312 | |
313 def test_push_with_new_dir(self): | |
314 self.test_push_to_default(commit=True) | |
315 repo = self.repo | |
316 def file_callback(repo, memctx, path): | |
317 if path == 'newdir/gamma': | |
318 return context.memfilectx(path=path, | |
319 data='foo', | |
320 islink=False, | |
321 isexec=False, | |
322 copied=False) | |
323 raise IOError() | |
324 ctx = context.memctx(repo, | |
325 (repo['tip'].node(), node.nullid), | |
326 'message', | |
327 ['newdir/gamma', ], | |
328 file_callback, | |
329 'author', | |
330 '2008-10-29 21:26:00 -0500', | |
331 {'branch': 'default', }) | |
332 new_hash = repo.commitctx(ctx) | |
333 hg.update(repo, repo['tip'].node()) | |
334 push_cmd.push_revisions_to_subversion(ui.ui(), repo=self.repo, | |
335 hg_repo_path=self.wc_path, | |
336 svn_url='file://' + self.repo_path) | |
337 tip = self.repo['tip'] | |
338 self.assertNotEqual(tip.node(), new_hash) | |
339 self.assertEqual(tip['newdir/gamma'].data(), 'foo') | |
340 | |
341 def test_push_existing_file_newly_execute(self, execute=True, | |
342 link=False, expected_flags='x'): | |
343 self.test_push_to_default() | |
344 repo = self.repo | |
345 def file_callback(repo, memctx, path): | |
346 return context.memfilectx(path=path, | |
347 data='foo', | |
348 islink=link, | |
349 isexec=execute, | |
350 copied=False) | |
351 ctx = context.memctx(repo, | |
352 (repo['default'].node(), node.nullid), | |
353 'message', | |
354 ['alpha', ], | |
355 file_callback, | |
356 'author', | |
357 '2008-1-1 00:00:00 -0500', | |
358 {'branch': 'default', }) | |
359 new_hash = repo.commitctx(ctx) | |
360 hg.update(repo, repo['tip'].node()) | |
361 push_cmd.push_revisions_to_subversion(ui.ui(), repo=self.repo, | |
362 hg_repo_path=self.wc_path, | |
363 svn_url='file://' + self.repo_path) | |
364 tip = self.repo['tip'] | |
365 self.assertNotEqual(tip.node(), new_hash) | |
366 self.assertEqual(tip['alpha'].data(), 'foo') | |
367 self.assertEqual(tip.parents()[0]['alpha'].flags(), '') | |
368 self.assertEqual(tip['alpha'].flags(), expected_flags) | |
369 # while we're here, double check pushing an already-executable file | |
370 # works | |
371 repo = self.repo | |
372 def file_callback(repo, memctx, path): | |
373 return context.memfilectx(path=path, | |
374 data='bar', | |
375 islink=link, | |
376 isexec=execute, | |
377 copied=False) | |
378 ctx = context.memctx(repo, | |
379 (repo['default'].node(), node.nullid), | |
380 'message', | |
381 ['alpha', ], | |
382 file_callback, | |
383 'author', | |
384 '2008-1-1 00:00:00 -0500', | |
385 {'branch': 'default', }) | |
386 new_hash = repo.commitctx(ctx) | |
387 hg.update(repo, repo['tip'].node()) | |
388 push_cmd.push_revisions_to_subversion(ui.ui(), repo=self.repo, | |
389 hg_repo_path=self.wc_path, | |
390 svn_url='file://' + self.repo_path) | |
391 tip = self.repo['tip'] | |
392 self.assertNotEqual(tip.node(), new_hash) | |
393 self.assertEqual(tip['alpha'].data(), 'bar') | |
394 self.assertEqual(tip.parents()[0]['alpha'].flags(), expected_flags) | |
395 self.assertEqual(tip['alpha'].flags(), expected_flags) | |
311 | 396 |
312 else: | 397 else: |
313 class PushTests(unittest.TestCase): | 398 class PushTests(unittest.TestCase): |
314 """Dummy so the test runner doesn't get upset. | 399 """Dummy so the test runner doesn't get upset. |
315 """ | 400 """ |