Mercurial > hgsubversion
comparison tests/test_rebuildmeta.py @ 499:1fd3cfa47c5e
Support for single-directory clones.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Fri, 16 Oct 2009 23:33:41 -0400 |
parents | 63cb630d667d |
children | 00393e9abff8 |
comparison
equal
deleted
inserted
replaced
498:990e07054f29 | 499:1fd3cfa47c5e |
---|---|
8 from mercurial import ui | 8 from mercurial import ui |
9 | 9 |
10 from hgsubversion import svncommands | 10 from hgsubversion import svncommands |
11 from hgsubversion import svnmeta | 11 from hgsubversion import svnmeta |
12 | 12 |
13 def _do_case(self, name, stupid): | 13 def _do_case(self, name, stupid, single): |
14 subdir = test_util.subdir.get(name, '') | 14 subdir = test_util.subdir.get(name, '') |
15 self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid) | 15 layout = 'auto' |
16 if single: | |
17 layout = 'single' | |
18 self._load_fixture_and_fetch(name, subdir=subdir, stupid=stupid, layout=layout) | |
16 assert len(self.repo) > 0 | 19 assert len(self.repo) > 0 |
17 wc2_path = self.wc_path + '_clone' | 20 wc2_path = self.wc_path + '_clone' |
18 u = ui.ui() | 21 u = ui.ui() |
19 src, dest = hg.clone(u, self.wc_path, wc2_path, update=False) | 22 src, dest = hg.clone(u, self.wc_path, wc2_path, update=False) |
20 svncommands.rebuildmeta(u, | 23 svncommands.rebuildmeta(u, |
25 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), | 28 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), |
26 'no .hg/svn directory in the source!') | 29 'no .hg/svn directory in the source!') |
27 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), | 30 self.assertTrue(os.path.isdir(os.path.join(src.path, 'svn')), |
28 'no .hg/svn directory in the destination!') | 31 'no .hg/svn directory in the destination!') |
29 dest = hg.repository(u, os.path.dirname(dest.path)) | 32 dest = hg.repository(u, os.path.dirname(dest.path)) |
30 for tf in ('rev_map', 'uuid', 'tagmap', ): | 33 for tf in ('rev_map', 'uuid', 'tagmap', 'layout', ): |
31 stf = os.path.join(src.path, 'svn', tf) | 34 stf = os.path.join(src.path, 'svn', tf) |
32 self.assertTrue(os.path.isfile(stf), '%r is missing!' % stf) | 35 self.assertTrue(os.path.isfile(stf), '%r is missing!' % stf) |
33 dtf = os.path.join(dest.path, 'svn', tf) | 36 dtf = os.path.join(dest.path, 'svn', tf) |
34 self.assertTrue(os.path.isfile(dtf), '%r is missing!' % tf) | 37 self.assertTrue(os.path.isfile(dtf), '%r is missing!' % tf) |
35 old, new = open(stf).read(), open(dtf).read() | 38 old, new = open(stf).read(), open(dtf).read() |
52 revkeys), reverse=True)[0][0] | 55 revkeys), reverse=True)[0][0] |
53 self.assertEqual(pr, destinfo[1]) | 56 self.assertEqual(pr, destinfo[1]) |
54 self.assertEqual(srcinfo[2], destinfo[2]) | 57 self.assertEqual(srcinfo[2], destinfo[2]) |
55 | 58 |
56 | 59 |
57 def buildmethod(case, name, stupid): | 60 def buildmethod(case, name, stupid, single): |
58 m = lambda self: self._do_case(case, stupid) | 61 m = lambda self: self._do_case(case, stupid, single) |
59 m.__name__ = name | 62 m.__name__ = name |
60 m.__doc__ = ('Test rebuildmeta on %s with %s replay.' % | 63 m.__doc__ = ('Test rebuildmeta on %s with %s replay. (%s)' % |
61 (case, (stupid and 'stupid') or 'real')) | 64 (case, |
65 (stupid and 'stupid') or 'real', | |
66 (single and 'single') or 'standard', | |
67 ) | |
68 ) | |
62 return m | 69 return m |
63 | 70 |
64 | 71 |
65 attrs = {'_do_case': _do_case, | 72 attrs = {'_do_case': _do_case, |
66 } | 73 } |
67 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: | 74 for case in [f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')]: |
68 # this fixture results in an empty repository, don't use it | 75 # this fixture results in an empty repository, don't use it |
69 if case == 'project_root_not_repo_root.svndump': | 76 if case == 'project_root_not_repo_root.svndump': |
70 continue | 77 continue |
71 name = 'test_' + case[:-len('.svndump')] | 78 bname = 'test_' + case[:-len('.svndump')] |
72 attrs[name] = buildmethod(case, name, False) | 79 attrs[bname] = buildmethod(case, bname, False, False) |
73 name += '_stupid' | 80 name = bname + '_stupid' |
74 attrs[name] = buildmethod(case, name, True) | 81 attrs[name] = buildmethod(case, name, True, False) |
82 name = bname + '_single' | |
83 attrs[name] = buildmethod(case, name, False, True) | |
84 | |
75 RebuildMetaTests = type('RebuildMetaTests', (test_util.TestBase, ), attrs) | 85 RebuildMetaTests = type('RebuildMetaTests', (test_util.TestBase, ), attrs) |
76 | 86 |
77 | 87 |
78 def suite(): | 88 def suite(): |
79 all = [unittest.TestLoader().loadTestsFromTestCase(RebuildMetaTests), | 89 all = [unittest.TestLoader().loadTestsFromTestCase(RebuildMetaTests), |