diff --git a/tests/test_externals.py b/tests/test_externals.py index 2927b1171d..2148dac910 100644 --- a/tests/test_externals.py +++ b/tests/test_externals.py @@ -278,9 +278,7 @@ d3/ext3 = [hgsubversion] d3:^/trunk/common/ext ext3 class TestPushExternals(test_util.TestBase): def test_push_externals(self, stupid=False): - test_util.load_fixture_and_fetch('pushexternals.svndump', - self.repo_path, - self.wc_path) + repo = self._load_fixture_and_fetch('pushexternals.svndump') # Add a new reference on an existing and non-existing directory changes = [ ('.hgsvnexternals', '.hgsvnexternals', @@ -331,10 +329,8 @@ class TestPushExternals(test_util.TestBase): if subrepo is None: return - test_util.load_fixture_and_fetch('pushexternals.svndump', - self.repo_path, - self.wc_path, - externals='subrepos') + self._load_fixture_and_fetch('pushexternals.svndump', + externals='subrepos') # Add a new reference on an existing and non-existing directory changes = [ ('.hgsub', '.hgsub', """\ diff --git a/tests/test_fetch_branches.py b/tests/test_fetch_branches.py index a9645f0d20..036f29dda3 100644 --- a/tests/test_fetch_branches.py +++ b/tests/test_fetch_branches.py @@ -7,12 +7,6 @@ from mercurial import node from mercurial import util as hgutil class TestFetchBranches(test_util.TestBase): - def _load_fixture_and_fetch(self, fixture_name, stupid, noupdate=True, - subdir=''): - return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, - self.wc_path, stupid=stupid, - noupdate=noupdate, subdir=subdir) - def _load_fixture_and_fetch_with_anchor(self, fixture_name, anchor): test_util.load_svndump_fixture(self.repo_path, fixture_name) source = '%s#%s' % (test_util.fileurl(self.repo_path), anchor) @@ -31,7 +25,8 @@ class TestFetchBranches(test_util.TestBase): return self.branches(repo)[0] def test_rename_branch_parent(self, stupid=False): - repo = self._load_fixture_and_fetch('rename_branch_parent_dir.svndump', stupid) + repo = self._load_fixture_and_fetch('rename_branch_parent_dir.svndump', + stupid=stupid) heads = [repo[n] for n in repo.heads()] heads = dict([(ctx.branch(), ctx) for ctx in heads]) # Let these tests disabled yet as the fix is not obvious @@ -41,7 +36,8 @@ class TestFetchBranches(test_util.TestBase): self.test_rename_branch_parent(stupid=True) def test_unrelatedbranch(self, stupid=False): - repo = self._load_fixture_and_fetch('unrelatedbranch.svndump', stupid) + repo = self._load_fixture_and_fetch('unrelatedbranch.svndump', + stupid=stupid) heads = [repo[n] for n in repo.heads()] heads = dict([(ctx.branch(), ctx) for ctx in heads]) # Let these tests disabled yet as the fix is not obvious @@ -52,7 +48,8 @@ class TestFetchBranches(test_util.TestBase): self.test_unrelatedbranch(True) def test_unorderedbranch(self, stupid=False): - repo = self._load_fixture_and_fetch('unorderedbranch.svndump', stupid) + repo = self._load_fixture_and_fetch('unorderedbranch.svndump', + stupid=stupid) r = repo['branch'] self.assertEqual(0, r.parents()[0].rev()) self.assertEqual(['a', 'c', 'z'], sorted(r.manifest())) @@ -62,7 +59,7 @@ class TestFetchBranches(test_util.TestBase): def test_renamed_branch_to_trunk(self, stupid=False): repo = self._load_fixture_and_fetch('branch_rename_to_trunk.svndump', - stupid) + stupid=stupid) self.assertEqual(repo['default'].parents()[0].branch(), 'dev_branch') self.assert_('iota' in repo['default']) self.assertEqual(repo['old_trunk'].parents()[0].branch(), 'default') @@ -75,14 +72,15 @@ class TestFetchBranches(test_util.TestBase): def test_replace_trunk_with_branch(self, stupid=False): repo = self._load_fixture_and_fetch('replace_trunk_with_branch.svndump', - stupid) + stupid=stupid) self.assertEqual(repo['default'].parents()[0].branch(), 'test') self.assertEqual(repo['tip'].branch(), 'default') self.assertEqual(repo['tip'].extra().get('close'), '1') self.assertEqual(self.openbranches(repo), ['default']) def test_copybeforeclose(self, stupid=False): - repo = self._load_fixture_and_fetch('copybeforeclose.svndump', stupid) + repo = self._load_fixture_and_fetch('copybeforeclose.svndump', + stupid=stupid) self.assertEqual(repo['tip'].branch(), 'test') self.assertEqual(repo['test'].extra().get('close'), '1') self.assertEqual(repo['test']['b'].data(), 'a\n') @@ -95,13 +93,13 @@ class TestFetchBranches(test_util.TestBase): def test_branch_create_with_dir_delete_works(self, stupid=False): repo = self._load_fixture_and_fetch('branch_create_with_dir_delete.svndump', - stupid) + stupid=stupid) self.assertEqual(repo['tip'].manifest().keys(), ['alpha', 'beta', 'iota', 'gamma', ]) def test_branch_tip_update_to_default(self, stupid=False): repo = self._load_fixture_and_fetch('unorderedbranch.svndump', - stupid, noupdate=False) + stupid=stupid, noupdate=False) self.assertEqual(repo[None].branch(), 'default') self.assertTrue('tip' not in repo[None].tags()) @@ -117,7 +115,8 @@ class TestFetchBranches(test_util.TestBase): self.assertTrue('c' not in repo.branchtags()) def test_branches_weird_moves(self, stupid=False): - repo = self._load_fixture_and_fetch('renamedproject.svndump', stupid, + repo = self._load_fixture_and_fetch('renamedproject.svndump', + stupid=stupid, subdir='project') heads = [repo[n] for n in repo.heads()] heads = dict((ctx.branch(), ctx) for ctx in heads) @@ -131,7 +130,7 @@ class TestFetchBranches(test_util.TestBase): def test_branch_delete_parent_dir(self, stupid=False): repo = self._load_fixture_and_fetch('branch_delete_parent_dir.svndump', - stupid) + stupid=stupid) openb, closedb = self.branches(repo) self.assertEqual(openb, []) self.assertEqual(closedb, ['dev_branch']) @@ -139,7 +138,7 @@ class TestFetchBranches(test_util.TestBase): def test_replace_branch_with_branch(self, stupid=False): repo = self._load_fixture_and_fetch('replace_branch_with_branch.svndump', - stupid) + stupid=stupid) self.assertEqual(7, len(repo)) # tip is former topological branch1 being closed ctx = repo['tip'] diff --git a/tests/test_fetch_command.py b/tests/test_fetch_command.py index f86416c54f..62215c0017 100644 --- a/tests/test_fetch_command.py +++ b/tests/test_fetch_command.py @@ -189,10 +189,7 @@ class TestBasicRepoLayout(test_util.TestBase): class TestStupidPull(test_util.TestBase): def test_stupid(self): - repo = test_util.load_fixture_and_fetch('two_heads.svndump', - self.repo_path, - self.wc_path, - True) + repo = self._load_fixture_and_fetch('two_heads.svndump', stupid=True) self.assertEqual(node.hex(repo[0].node()), '434ed487136c1b47c1e8f952edb4dc5a8e6328df') self.assertEqual(node.hex(repo['tip'].node()), @@ -210,12 +207,9 @@ class TestStupidPull(test_util.TestBase): self.assertEqual(len(repo.heads()), 2) def test_oldest_not_trunk_and_tag_vendor_branch(self): - repo = test_util.load_fixture_and_fetch( + repo = self._load_fixture_and_fetch( 'tagged_vendor_and_oldest_not_trunk.svndump', - self.repo_path, - self.wc_path, - True) - repo = hg.repository(ui.ui(), self.wc_path) + stupid=True) self.assertEqual(node.hex(repo['oldest'].node()), '926671740dec045077ab20f110c1595f935334fa') self.assertEqual(repo['tip'].parents()[0].parents()[0], diff --git a/tests/test_fetch_exec.py b/tests/test_fetch_exec.py index 4742d27863..3cd4c6eff3 100644 --- a/tests/test_fetch_exec.py +++ b/tests/test_fetch_exec.py @@ -5,16 +5,12 @@ import unittest from mercurial import node class TestFetchExec(test_util.TestBase): - def _load_fixture_and_fetch(self, fixture_name, stupid): - return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, - self.wc_path, stupid=stupid) - def assertexec(self, ctx, files, isexec=True): for f in files: self.assertEqual(isexec, 'x' in ctx[f].flags()) def test_exec(self, stupid=False): - repo = self._load_fixture_and_fetch('executebit.svndump', stupid) + repo = self._load_fixture_and_fetch('executebit.svndump', stupid=stupid) self.assertexec(repo[0], ['text1', 'binary1', 'empty1'], True) self.assertexec(repo[0], ['text2', 'binary2', 'empty2'], False) self.assertexec(repo[1], ['text1', 'binary1', 'empty1'], False) @@ -24,7 +20,8 @@ class TestFetchExec(test_util.TestBase): self.test_exec(True) def test_empty_prop_val_executable(self, stupid=False): - repo = self._load_fixture_and_fetch('executable_file_empty_prop.svndump', stupid) + repo = self._load_fixture_and_fetch('executable_file_empty_prop.svndump', + stupid=stupid) self.assertEqual(node.hex(repo['tip'].node()), '08e6b380bf291b361a418203a1cb9427213cd1fd') self.assertEqual(repo['tip']['foo'].flags(), 'x') diff --git a/tests/test_fetch_symlinks.py b/tests/test_fetch_symlinks.py index be103b5729..7f9252bb10 100644 --- a/tests/test_fetch_symlinks.py +++ b/tests/test_fetch_symlinks.py @@ -3,12 +3,8 @@ import test_util import unittest class TestFetchSymlinks(test_util.TestBase): - def _load_fixture_and_fetch(self, fixture_name, stupid): - return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, - self.wc_path, stupid=stupid) - def test_symlinks(self, stupid=False): - repo = self._load_fixture_and_fetch('symlinks.svndump', stupid) + repo = self._load_fixture_and_fetch('symlinks.svndump', stupid=stupid) # Check symlinks throughout history links = { 0: { diff --git a/tests/test_pull.py b/tests/test_pull.py index b0f61b2210..1f64ea0008 100644 --- a/tests/test_pull.py +++ b/tests/test_pull.py @@ -11,19 +11,18 @@ class TestPull(test_util.TestBase): def setUp(self): super(TestPull, self).setUp() - def _load_fixture_and_fetch(self, fixture_name): - return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, - self.wc_path, stupid=False, - noupdate=False) + def _loadupdate(self, fixture_name): + return self._load_fixture_and_fetch(fixture_name, stupid=False, + noupdate=False) def test_nochanges(self): - self._load_fixture_and_fetch('single_rev.svndump') + self._loadupdate('single_rev.svndump') state = self.repo.parents() commands.pull(self.repo.ui, self.repo) self.assertEqual(state, self.repo.parents()) def test_onerevision_noupdate(self): - repo = self._load_fixture_and_fetch('single_rev.svndump') + repo = self._loadupdate('single_rev.svndump') state = repo.parents() self._add_svn_rev({'trunk/alpha': 'Changed'}) commands.pull(self.repo.ui, repo) @@ -31,7 +30,7 @@ class TestPull(test_util.TestBase): self.assertTrue('tip' not in repo[None].tags()) def test_onerevision_doupdate(self): - repo = self._load_fixture_and_fetch('single_rev.svndump') + repo = self._loadupdate('single_rev.svndump') state = repo.parents() self._add_svn_rev({'trunk/alpha': 'Changed'}) commands.pull(self.repo.ui, repo, update=True) @@ -39,7 +38,7 @@ class TestPull(test_util.TestBase): self.assertTrue('tip' in repo[None].tags()) def test_onerevision_divergent(self): - repo = self._load_fixture_and_fetch('single_rev.svndump') + repo = self._loadupdate('single_rev.svndump') self.commitchanges((('alpha', 'alpha', 'Changed another way'),)) state = repo.parents() self._add_svn_rev({'trunk/alpha': 'Changed one way'}) @@ -53,7 +52,7 @@ class TestPull(test_util.TestBase): self.assertEqual(len(repo.heads()), 2) def test_tag_repull_doesnt_happen(self): - repo = self._load_fixture_and_fetch('branchtagcollision.svndump') + repo = self._loadupdate('branchtagcollision.svndump') oldheads = map(node.hex, repo.heads()) commands.pull(repo.ui, repo) self.assertEqual(oldheads, map(node.hex, repo.heads())) diff --git a/tests/test_push_command.py b/tests/test_push_command.py index 86a02e657e..ac302a8f94 100644 --- a/tests/test_push_command.py +++ b/tests/test_push_command.py @@ -23,9 +23,7 @@ import time class PushTests(test_util.TestBase): def setUp(self): test_util.TestBase.setUp(self) - test_util.load_fixture_and_fetch('simple_branch.svndump', - self.repo_path, - self.wc_path) + self._load_fixture_and_fetch('simple_branch.svndump') def test_cant_push_empty_ctx(self): repo = self.repo diff --git a/tests/test_push_eol.py b/tests/test_push_eol.py index fe89529f55..24eaf165e2 100644 --- a/tests/test_push_eol.py +++ b/tests/test_push_eol.py @@ -5,9 +5,7 @@ import unittest class TestPushEol(test_util.TestBase): def setUp(self): test_util.TestBase.setUp(self) - test_util.load_fixture_and_fetch('emptyrepo.svndump', - self.repo_path, - self.wc_path) + self._load_fixture_and_fetch('emptyrepo.svndump') def _test_push_dirs(self, stupid): changes = [ diff --git a/tests/test_push_renames.py b/tests/test_push_renames.py index ea7acffd5d..c305b73cb1 100644 --- a/tests/test_push_renames.py +++ b/tests/test_push_renames.py @@ -6,10 +6,8 @@ import unittest class TestPushRenames(test_util.TestBase): def setUp(self): test_util.TestBase.setUp(self) - test_util.load_fixture_and_fetch('pushrenames.svndump', - self.repo_path, - self.wc_path, - True) + self._load_fixture_and_fetch('pushrenames.svndump', + stupid=True) def _debug_print_copies(self, ctx): w = sys.stderr.write diff --git a/tests/test_tags.py b/tests/test_tags.py index 55cbb0ceb3..5698d96ab0 100644 --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -12,10 +12,6 @@ from hgsubversion import svncommands from hgsubversion import svnrepo class TestTags(test_util.TestBase): - def _load_fixture_and_fetch(self, fixture_name, stupid=False): - return test_util.load_fixture_and_fetch(fixture_name, self.repo_path, - self.wc_path, stupid=stupid) - def test_tags(self, stupid=False): repo = self._load_fixture_and_fetch('basic_tag_tests.svndump', stupid=stupid) diff --git a/tests/test_util.py b/tests/test_util.py index 63b02f8f84..f9793f0f2c 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -177,31 +177,6 @@ def dispatch(cmd): except AttributeError, e: dispatchmod.dispatch(cmd) -def load_fixture_and_fetch(fixture_name, repo_path, wc_path, stupid=False, - subdir='', noupdate=True, layout='auto', - startrev=0, externals=None): - load_svndump_fixture(repo_path, fixture_name) - if subdir: - repo_path += '/' + subdir - - cmd = [ - 'clone', - '--layout=%s' % layout, - '--startrev=%s' % startrev, - fileurl(repo_path), - wc_path, - ] - if stupid: - cmd.append('--stupid') - if noupdate: - cmd.append('--noupdate') - if externals: - cmd[:0] = ['--config', 'hgsubversion.externals=%s' % externals] - - dispatch(cmd) - - return hg.repository(testui(), wc_path) - def rmtree(path): # Read-only files cannot be removed under Windows for root, dirs, files in os.walk(path): @@ -292,16 +267,35 @@ class TestBase(unittest.TestCase): return testui(stupid, layout) def _load_fixture_and_fetch(self, fixture_name, subdir=None, stupid=False, - layout='auto', startrev=0, externals=None): + layout='auto', startrev=0, externals=None, + noupdate=True): if layout == 'single': if subdir is None: subdir = 'trunk' elif subdir is None: subdir = '' - return load_fixture_and_fetch(fixture_name, self.repo_path, - self.wc_path, subdir=subdir, - stupid=stupid, layout=layout, - startrev=startrev, externals=externals) + load_svndump_fixture(self.repo_path, fixture_name) + projectpath = self.repo_path + if subdir: + projectpath += '/' + subdir + + cmd = [ + 'clone', + '--layout=%s' % layout, + '--startrev=%s' % startrev, + fileurl(projectpath), + self.wc_path, + ] + if stupid: + cmd.append('--stupid') + if noupdate: + cmd.append('--noupdate') + if externals: + cmd[:0] = ['--config', 'hgsubversion.externals=%s' % externals] + + dispatch(cmd) + + return hg.repository(testui(), self.wc_path) def _add_svn_rev(self, changes): '''changes is a dict of filename -> contents''' diff --git a/tests/test_utility_commands.py b/tests/test_utility_commands.py index 2de14bbb3f..df25136368 100644 --- a/tests/test_utility_commands.py +++ b/tests/test_utility_commands.py @@ -211,11 +211,10 @@ class UtilityTests(test_util.TestBase): def test_genignore(self): """ Test generation of .hgignore file. """ - test_util.load_fixture_and_fetch('ignores.svndump', self.repo_path, - self.wc_path, noupdate=False) + repo = self._load_fixture_and_fetch('ignores.svndump', noupdate=False) u = self.ui() u.pushbuffer() - svncommands.genignore(u, self.repo, self.wc_path) + svncommands.genignore(u, repo, self.wc_path) self.assertMultiLineEqual(open(os.path.join(self.wc_path, '.hgignore')).read(), '.hgignore\nsyntax:glob\nblah\notherblah\nbaz/magic\n')