sapling/tests/test-hgsubversion-hooks.py
Lukasz Langa dfda82e492 Upgrade to 18.5b1
Summary: Mostly empty lines removed and added.  A few bugfixes on excessive line splitting.

Reviewed By: quark-zju

Differential Revision: D8199128

fbshipit-source-id: 90c1616061bfd7cfbba0b75f03f89683340374d5
2018-05-30 02:23:58 -07:00

54 lines
1.7 KiB
Python

import test_hgsubversion_util
from mercurial import commands, hg
class TestHooks(test_hgsubversion_util.TestBase):
def setUp(self):
super(TestHooks, self).setUp()
def _loadupdate(self, fixture_name, *args, **kwargs):
kwargs = kwargs.copy()
kwargs.update(noupdate=False)
repo, repo_path = self.load_and_fetch(fixture_name, *args, **kwargs)
return repo, repo_path
def test_updatemetahook(self):
repo, repo_path = self._loadupdate("single_rev.svndump")
self.add_svn_rev(repo_path, {"trunk/alpha": "Changed"})
commands.pull(self.repo.ui, self.repo)
# Clone to a new repository and add a hook
new_wc_path = "%s-2" % self.wc_path
commands.clone(self.repo.ui, self.wc_path, new_wc_path)
newrepo = hg.repository(test_hgsubversion_util.testui(), new_wc_path)
newrepo.ui.setconfig(
"hooks",
"changegroup.meta",
"python:hgext.hgsubversion.hooks.updatemeta.hook",
)
# Commit a rev that should trigger svn meta update
self.add_svn_rev(repo_path, {"trunk/alpha": "Changed Again"})
commands.pull(self.repo.ui, self.repo)
self.called = False
from hgext.hgsubversion import svncommands
oldupdatemeta = svncommands.updatemeta
def _updatemeta(ui, repo, args=[]):
self.called = True
svncommands.updatemeta = _updatemeta
# Pull and make sure our updatemeta function gets called
commands.pull(newrepo.ui, newrepo)
svncommands.updatemeta = oldupdatemeta
self.assertTrue(self.called)
if __name__ == "__main__":
import silenttestrunner
silenttestrunner.main(__name__)