File: test-merge.py

package info (click to toggle)
python-hglib 1.4-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 312 kB
  • sloc: python: 2,098; makefile: 20
file content (71 lines) | stat: -rw-r--r-- 1,850 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import common, hglib

class test_merge(common.basetest):
    def setUp(self):
        common.basetest.setUp(self)

        self.append('a', 'a')
        rev, self.node0 = self.client.commit('first', addremove=True)

        self.append('a', 'a')
        rev, self.node1 = self.client.commit('change')

    def test_basic(self):
        self.client.update(self.node0)
        self.append('b', 'a')
        rev, node2 = self.client.commit('new file', addremove=True)
        self.client.merge(self.node1)
        rev, node = self.client.commit('merge')
        diff = """diff -r %s -r %s a
--- a/a
+++ b/a
@@ -1,1 +1,1 @@
-a
\ No newline at end of file
+aa
\ No newline at end of file
""" % (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))