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))