comparison tests/comprehensive/test_stupid_pull.py @ 499:1fd3cfa47c5e

Support for single-directory clones.
author Augie Fackler <durin42@gmail.com>
date Fri, 16 Oct 2009 23:33:41 -0400
parents 24a8471069c0
children 58f397523604
comparison
equal deleted inserted replaced
498:990e07054f29 499:1fd3cfa47c5e
7 7
8 from tests import test_util 8 from tests import test_util
9 from hgsubversion import wrappers 9 from hgsubversion import wrappers
10 10
11 11
12 def _do_case(self, name): 12 def _do_case(self, name, layout):
13 subdir = test_util.subdir.get(name, '') 13 subdir = test_util.subdir.get(name, '')
14 self._load_fixture_and_fetch(name, subdir=subdir, stupid=False) 14 self._load_fixture_and_fetch(name, subdir=subdir, stupid=False, layout=layout)
15 assert len(self.repo) > 0, 'Repo had no changes, maybe you need to add a subdir entry in test_util?' 15 assert len(self.repo) > 0, 'Repo had no changes, maybe you need to add a subdir entry in test_util?'
16 wc2_path = self.wc_path + '_stupid' 16 wc2_path = self.wc_path + '_stupid'
17 u = ui.ui() 17 u = ui.ui()
18 checkout_path = self.repo_path 18 checkout_path = self.repo_path
19 if subdir: 19 if subdir:
20 checkout_path += '/' + subdir 20 checkout_path += '/' + subdir
21 u.setconfig('hgsubversion', 'stupid', '1') 21 u.setconfig('hgsubversion', 'stupid', '1')
22 u.setconfig('hgsubversion', 'layout', layout)
22 hg.clone(u, test_util.fileurl(checkout_path), wc2_path, update=False) 23 hg.clone(u, test_util.fileurl(checkout_path), wc2_path, update=False)
24 if layout == 'single':
25 self.assertEqual(len(self.repo.heads()), 1)
23 self.repo2 = hg.repository(ui.ui(), wc2_path) 26 self.repo2 = hg.repository(ui.ui(), wc2_path)
24 self.assertEqual(self.repo.heads(), self.repo2.heads()) 27 self.assertEqual(self.repo.heads(), self.repo2.heads())
25 28
26 29
27 def buildmethod(case, name): 30 def buildmethod(case, name, layout):
28 m = lambda self: self._do_case(case) 31 m = lambda self: self._do_case(case, layout)
29 m.__name__ = name 32 m.__name__ = name
30 m.__doc__ = 'Test stupid produces same as real on %s.' % case 33 m.__doc__ = 'Test stupid produces same as real on %s. (%s)' % (case, layout)
31 return m 34 return m
32 35
33 attrs = {'_do_case': _do_case, 36 attrs = {'_do_case': _do_case,
34 } 37 }
35 for case in (f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')): 38 for case in (f for f in os.listdir(test_util.FIXTURES) if f.endswith('.svndump')):
36 name = 'test_' + case[:-len('.svndump')] 39 name = 'test_' + case[:-len('.svndump')]
37 attrs[name] = buildmethod(case, name) 40 attrs[name] = buildmethod(case, name, 'auto')
41 name += '_single'
42 attrs[name] = buildmethod(case, name, 'single')
43
38 StupidPullTests = type('StupidPullTests', (test_util.TestBase, ), attrs) 44 StupidPullTests = type('StupidPullTests', (test_util.TestBase, ), attrs)
39 45
40 46
41 def suite(): 47 def suite():
42 all = [unittest.TestLoader().loadTestsFromTestCase(StupidPullTests), 48 all = [unittest.TestLoader().loadTestsFromTestCase(StupidPullTests),