Mercurial > hgsubversion
comparison tests/test_rebuildmeta.py @ 893:295a8b48e4e2
Merge
| author | Augie Fackler <raf@durin42.com> |
|---|---|
| date | Sat, 12 May 2012 10:07:29 -0500 |
| parents | 3bfb7e985c47 78db88de9622 |
| children | 7e9d805a0e1f |
comparison
equal
deleted
inserted
replaced
| 892:3bfb7e985c47 | 893:295a8b48e4e2 |
|---|---|
| 49 subdir), ]) | 49 subdir), ]) |
| 50 finally: | 50 finally: |
| 51 # remove the wrapper | 51 # remove the wrapper |
| 52 context.changectx.children = origchildren | 52 context.changectx.children = origchildren |
| 53 | 53 |
| 54 self._run_assertions(name, stupid, single, src, dest, u) | |
| 55 | |
| 56 wc3_path = self.wc_path + '_partial' | |
| 57 src, dest = test_util.hgclone(u, | |
| 58 self.wc_path, | |
| 59 wc3_path, | |
| 60 update=False, | |
| 61 rev=[0]) | |
| 62 | |
| 63 # insert a wrapper that prevents calling changectx.children() | |
| 64 extensions.wrapfunction(context.changectx, 'children', failfn) | |
| 65 | |
| 66 try: | |
| 67 svncommands.rebuildmeta(u, dest, | |
| 68 args=[test_util.fileurl(repo_path + | |
| 69 subdir), ]) | |
| 70 finally: | |
| 71 # remove the wrapper | |
| 72 context.changectx.children = origchildren | |
| 73 | |
| 74 dest.pull(src) | |
| 75 | |
| 76 # insert a wrapper that prevents calling changectx.children() | |
| 77 extensions.wrapfunction(context.changectx, 'children', failfn) | |
| 78 try: | |
| 79 svncommands.updatemeta(u, dest, | |
| 80 args=[test_util.fileurl(repo_path + | |
| 81 subdir), ]) | |
| 82 finally: | |
| 83 # remove the wrapper | |
| 84 context.changectx.children = origchildren | |
| 85 | |
| 86 self._run_assertions(name, stupid, single, src, dest, u) | |
| 87 | |
| 88 | |
| 89 def _run_assertions(self, name, stupid, single, src, dest, u): | |
| 90 | |
| 54 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), | 91 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), |
| 55 'no .hg/svn directory in the source!') | 92 'no .hg/svn directory in the source!') |
| 56 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), | 93 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), |
| 57 'no .hg/svn directory in the destination!') | 94 'no .hg/svn directory in the destination!') |
| 58 dest = hg.repository(u, os.path.dirname(dest.path)) | 95 dest = hg.repository(u, os.path.dirname(dest.path)) |
| 66 if tf == 'lastpulled' and (name, | 103 if tf == 'lastpulled' and (name, |
| 67 stupid, single) in expect_youngest_skew: | 104 stupid, single) in expect_youngest_skew: |
| 68 self.assertNotEqual(old, new, | 105 self.assertNotEqual(old, new, |
| 69 'rebuildmeta unexpected match on youngest rev!') | 106 'rebuildmeta unexpected match on youngest rev!') |
| 70 continue | 107 continue |
| 71 self.assertMultiLineEqual(old, new) | 108 self.assertMultiLineEqual(old, new, tf + ' differs') |
| 72 self.assertEqual(src.branchtags(), dest.branchtags()) | 109 self.assertEqual(src.branchtags(), dest.branchtags()) |
| 73 srcbi = pickle.load(open(os.path.join(src.path, 'svn', 'branch_info'))) | 110 srcbi = pickle.load(open(os.path.join(src.path, 'svn', 'branch_info'))) |
| 74 destbi = pickle.load(open(os.path.join(dest.path, 'svn', 'branch_info'))) | 111 destbi = pickle.load(open(os.path.join(dest.path, 'svn', 'branch_info'))) |
| 75 self.assertEqual(sorted(srcbi.keys()), sorted(destbi.keys())) | 112 self.assertEqual(sorted(srcbi.keys()), sorted(destbi.keys())) |
| 76 revkeys = svnmeta.SVNMeta(dest).revmap.keys() | 113 revkeys = svnmeta.SVNMeta(dest).revmap.keys() |
| 105 'project_root_not_repo_root.svndump', | 142 'project_root_not_repo_root.svndump', |
| 106 'corrupt.svndump', | 143 'corrupt.svndump', |
| 107 ]) | 144 ]) |
| 108 | 145 |
| 109 attrs = {'_do_case': _do_case, | 146 attrs = {'_do_case': _do_case, |
| 147 '_run_assertions': _run_assertions, | |
| 110 } | 148 } |
| 111 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: | 149 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: |
| 112 # this fixture results in an empty repository, don't use it | 150 # this fixture results in an empty repository, don't use it |
| 113 if case in skip: | 151 if case in skip: |
| 114 continue | 152 continue |
