Mercurial > python-hglib
diff tests/test-merge.py @ 46:ebcc5d7dd528
client: introduce merge handlers
These can control the behaviour when Mercurial prompts what to do with regard
to a specific file
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Tue, 16 Aug 2011 23:58:24 +0300 |
parents | 191855a9d813 |
children | 4359cabcb0cc |
line wrap: on
line diff
--- a/tests/test-merge.py Tue Aug 16 23:57:21 2011 +0300 +++ b/tests/test-merge.py Tue Aug 16 23:58:24 2011 +0300 @@ -27,3 +27,45 @@ """ % (node2[:12], node[:12]) self.assertEquals(diff, self.client.diff(change=node, nodates=True)) + + def test_merge_prompt_abort(self): + self.client.update(self.node0) + self.client.remove('a') + self.client.commit('remove') + + self.assertRaises(hglib.error.CommandError, self.client.merge) + + def test_merge_prompt_noninteractive(self): + self.client.update(self.node0) + self.client.remove('a') + rev, node = self.client.commit('remove') + + self.client.merge(cb=hglib.merge.handlers.noninteractive) + + diff = """diff -r %s a +--- /dev/null ++++ b/a +@@ -0,0 +1,1 @@ ++aa +\ No newline at end of file +""" % node[:12] + self.assertEquals(diff, self.client.diff(nodates=True)) + + def test_merge_prompt_cb(self): + self.client.update(self.node0) + self.client.remove('a') + rev, node = self.client.commit('remove') + + def cb(output): + return 'c' + + self.client.merge(cb=cb) + + diff = """diff -r %s a +--- /dev/null ++++ b/a +@@ -0,0 +1,1 @@ ++aa +\ No newline at end of file +""" % node[:12] + self.assertEquals(diff, self.client.diff(nodates=True))