Mercurial > hgsubversion
comparison tests/test_utility_commands.py @ 1092:cd0d14e25757
layouts: add custom layout for those of us that need weird mappings
This adds a config-driven custom layout, targeted at the case where
you need to fetch a small subset of a large number of subversion
branches, or where your subversion layout doesn't match the standard
trunk/branches/tags layout very well.
| author | David Schleimer <dschleimer@fb.com> |
|---|---|
| date | Mon, 26 Aug 2013 16:40:31 -0700 |
| parents | 8f3a241b790d |
| children | e73df57b2b07 |
comparison
equal
deleted
inserted
replaced
| 1091:384eb7e05b61 | 1092:cd0d14e25757 |
|---|---|
| 31 return util.normalize_url(test_util.fileurl(repo_path)) | 31 return util.normalize_url(test_util.fileurl(repo_path)) |
| 32 | 32 |
| 33 class UtilityTests(test_util.TestBase): | 33 class UtilityTests(test_util.TestBase): |
| 34 stupid_mode_tests = True | 34 stupid_mode_tests = True |
| 35 | 35 |
| 36 def test_info_output(self): | 36 def test_info_output(self, custom=False): |
| 37 repo, repo_path = self.load_and_fetch('two_heads.svndump') | 37 if custom: |
| 38 config = { | |
| 39 'hgsubversionbranch.default': 'trunk', | |
| 40 'hgsubversionbranch.the_branch': 'branches/the_branch', | |
| 41 } | |
| 42 else: | |
| 43 config = {} | |
| 44 repo, repo_path = self.load_and_fetch('two_heads.svndump', config=config) | |
| 38 hg.update(self.repo, 'the_branch') | 45 hg.update(self.repo, 'the_branch') |
| 39 u = self.ui() | 46 u = self.ui() |
| 40 u.pushbuffer() | 47 u.pushbuffer() |
| 41 svncommands.info(u, self.repo) | 48 svncommands.info(u, self.repo) |
| 42 actual = u.popbuffer() | 49 actual = u.popbuffer() |
| 85 'branch': 'trunk', | 92 'branch': 'trunk', |
| 86 'rev': 6, | 93 'rev': 6, |
| 87 }) | 94 }) |
| 88 self.assertMultiLineEqual(actual, expected) | 95 self.assertMultiLineEqual(actual, expected) |
| 89 | 96 |
| 90 def test_info_single(self): | 97 def test_info_output_custom(self): |
| 91 repo, repo_path = self.load_and_fetch('two_heads.svndump', subdir='trunk') | 98 self.test_info_output(custom=True) |
| 99 | |
| 100 def test_info_single(self, custom=False): | |
| 101 if custom: | |
| 102 subdir=None | |
| 103 config = { | |
| 104 'hgsubversionbranch.default': 'trunk/' | |
| 105 } | |
| 106 else: | |
| 107 subdir='trunk' | |
| 108 config = {} | |
| 109 repo, repo_path = self.load_and_fetch('two_heads.svndump', | |
| 110 subdir=subdir, | |
| 111 config=config) | |
| 92 hg.update(self.repo, 'tip') | 112 hg.update(self.repo, 'tip') |
| 93 u = self.ui() | 113 u = self.ui() |
| 94 u.pushbuffer() | 114 u.pushbuffer() |
| 95 svncommands.info(u, self.repo) | 115 svncommands.info(u, self.repo) |
| 96 actual = u.popbuffer() | 116 actual = u.popbuffer() |
| 99 'repourl': repourl(repo_path), | 119 'repourl': repourl(repo_path), |
| 100 'branch': 'trunk', | 120 'branch': 'trunk', |
| 101 'rev': 6, | 121 'rev': 6, |
| 102 }) | 122 }) |
| 103 self.assertMultiLineEqual(expected, actual) | 123 self.assertMultiLineEqual(expected, actual) |
| 124 | |
| 125 def test_info_custom_single(self): | |
| 126 self.test_info_single(custom=True) | |
| 104 | 127 |
| 105 def test_missing_metadata(self): | 128 def test_missing_metadata(self): |
| 106 self._load_fixture_and_fetch('two_heads.svndump') | 129 self._load_fixture_and_fetch('two_heads.svndump') |
| 107 os.remove(self.repo.join('svn/branch_info')) | 130 os.remove(self.repo.join('svn/branch_info')) |
| 108 svncommands.updatemeta(self.ui(), self.repo, []) | 131 svncommands.updatemeta(self.ui(), self.repo, []) |
| 230 wrappers.rebase(rebase.rebase, self.ui(), self.repo, svn=True) | 253 wrappers.rebase(rebase.rebase, self.ui(), self.repo, svn=True) |
| 231 self.assertEqual(self.repo['tip'].branch(), 'localbranch') | 254 self.assertEqual(self.repo['tip'].branch(), 'localbranch') |
| 232 self.assertEqual(self.repo['tip'].parents()[0].parents()[0], self.repo[0]) | 255 self.assertEqual(self.repo['tip'].parents()[0].parents()[0], self.repo[0]) |
| 233 self.assertNotEqual(beforerebasehash, self.repo['tip'].node()) | 256 self.assertNotEqual(beforerebasehash, self.repo['tip'].node()) |
| 234 | 257 |
| 235 def test_genignore(self): | 258 def test_genignore(self, layout='auto'): |
| 236 """ Test generation of .hgignore file. """ | 259 """ Test generation of .hgignore file. """ |
| 237 repo = self._load_fixture_and_fetch('ignores.svndump', noupdate=False) | 260 if layout == 'custom': |
| 261 config = { | |
| 262 'hgsubversionbranch.default': 'trunk', | |
| 263 } | |
| 264 else: | |
| 265 config = {} | |
| 266 repo = self._load_fixture_and_fetch('ignores.svndump', | |
| 267 layout=layout, | |
| 268 noupdate=False, | |
| 269 config=config) | |
| 238 u = self.ui() | 270 u = self.ui() |
| 239 u.pushbuffer() | 271 u.pushbuffer() |
| 240 svncommands.genignore(u, repo, self.wc_path) | 272 svncommands.genignore(u, repo, self.wc_path) |
| 241 self.assertMultiLineEqual(open(os.path.join(self.wc_path, '.hgignore')).read(), | 273 self.assertMultiLineEqual(open(os.path.join(self.wc_path, '.hgignore')).read(), |
| 242 '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n') | 274 '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n') |
| 243 | 275 |
| 244 def test_genignore_single(self): | 276 def test_genignore_single(self): |
| 245 self._load_fixture_and_fetch('ignores.svndump', subdir='trunk') | 277 self.test_genignore(layout='single') |
| 246 hg.update(self.repo, 'tip') | 278 |
| 247 u = self.ui() | 279 def test_genignore_custom(self): |
| 248 u.pushbuffer() | 280 self.test_genignore(layout='custom') |
| 249 svncommands.genignore(u, self.repo, self.wc_path) | |
| 250 self.assertMultiLineEqual(open(os.path.join(self.wc_path, '.hgignore')).read(), | |
| 251 '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n') | |
| 252 | 281 |
| 253 def test_list_authors(self): | 282 def test_list_authors(self): |
| 254 repo_path = self.load_svndump('replace_trunk_with_branch.svndump') | 283 repo_path = self.load_svndump('replace_trunk_with_branch.svndump') |
| 255 u = self.ui() | 284 u = self.ui() |
| 256 u.pushbuffer() | 285 u.pushbuffer() |
