Mercurial > hgsubversion
comparison tests/comprehensive/test_updatemeta.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 | 48379ebd2763 |
children | c6b01fd34694 |
comparison
equal
deleted
inserted
replaced
1091:384eb7e05b61 | 1092:cd0d14e25757 |
---|---|
21 from hgsubversion import svncommands | 21 from hgsubversion import svncommands |
22 from hgsubversion import svnmeta | 22 from hgsubversion import svnmeta |
23 | 23 |
24 | 24 |
25 | 25 |
26 def _do_case(self, name, single): | 26 def _do_case(self, name, layout): |
27 subdir = test_util.subdir.get(name, '') | 27 subdir = test_util.subdir.get(name, '') |
28 layout = 'auto' | 28 single = layout == 'single' |
29 if single: | 29 u = ui.ui() |
30 layout = 'single' | 30 config = {} |
31 repo, repo_path = self.load_and_fetch(name, subdir=subdir, layout=layout) | 31 if layout == 'custom': |
32 config['hgsubversion.layout'] = 'custom' | |
33 u.setconfig('hgsubversion', 'layout', 'custom') | |
34 for branch, path in test_util.custom.get(name, {}).iteritems(): | |
35 config['hgsubversionbranch.%s' % branch] = path | |
36 u.setconfig('hgsubversionbranch', branch, path) | |
37 | |
38 repo, repo_path = self.load_and_fetch(name, | |
39 subdir=subdir, | |
40 layout=layout, | |
41 config=config) | |
32 assert test_util.repolen(self.repo) > 0 | 42 assert test_util.repolen(self.repo) > 0 |
33 wc2_path = self.wc_path + '_clone' | 43 wc2_path = self.wc_path + '_clone' |
34 u = ui.ui() | |
35 src, dest = test_util.hgclone(u, self.wc_path, wc2_path, update=False) | 44 src, dest = test_util.hgclone(u, self.wc_path, wc2_path, update=False) |
36 src = test_util.getlocalpeer(src) | 45 src = test_util.getlocalpeer(src) |
37 dest = test_util.getlocalpeer(dest) | 46 dest = test_util.getlocalpeer(dest) |
38 | 47 |
39 # insert a wrapper that prevents calling changectx.children() | 48 # insert a wrapper that prevents calling changectx.children() |
72 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: | 81 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: |
73 # this fixture results in an empty repository, don't use it | 82 # this fixture results in an empty repository, don't use it |
74 if case in skip: | 83 if case in skip: |
75 continue | 84 continue |
76 bname = 'test_' + case[:-len('.svndump')] | 85 bname = 'test_' + case[:-len('.svndump')] |
77 attrs[bname] = test_rebuildmeta.buildmethod(case, bname, False) | 86 attrs[bname] = test_rebuildmeta.buildmethod(case, bname, 'auto') |
78 name = bname + '_single' | 87 attrs[bname + '_single'] = test_rebuildmeta.buildmethod(case, |
79 attrs[name] = test_rebuildmeta.buildmethod(case, name, True) | 88 bname + '_single', |
89 'single') | |
90 if case in test_util.custom: | |
91 attrs[bname + '_custom'] = test_rebuildmeta.buildmethod(case, | |
92 bname + '_custom', | |
93 'custom') | |
94 | |
80 | 95 |
81 UpdateMetaTests = type('UpdateMetaTests', (test_util.TestBase,), attrs) | 96 UpdateMetaTests = type('UpdateMetaTests', (test_util.TestBase,), attrs) |