~bzr-pqm/bzr/bzr.dev

0.9.1 by Aaron Bentley
Get trivial case passing
1
from unittest import TestCase
2
3
import multiparent
4
5
LINES_1 = "a\nb\nc\nd\ne\n".splitlines(True)
0.9.2 by Aaron Bentley
Get single-parent comparison working
6
LINES_2 = "a\nc\nd\ne\n".splitlines(True)
7
8
9
class Mock(object):
10
11
    def __init__(self, **kwargs):
12
        self.__dict__ = kwargs
13
0.9.1 by Aaron Bentley
Get trivial case passing
14
15
class TestMulti(TestCase):
16
0.9.2 by Aaron Bentley
Get single-parent comparison working
17
    def test_compare_no_parent(self):
18
        diff = multiparent.MultiParent.from_lines(LINES_1)
19
        self.assertEqual([multiparent.NewText(LINES_1)], diff.hunks)
20
21
    def test_compare_one_parent(self):
22
        diff = multiparent.MultiParent.from_lines(LINES_1, [LINES_2])
23
        self.assertEqual([multiparent.ParentText(0, 0, 0, 1),
24
                          multiparent.NewText(['b\n']),
25
                          multiparent.ParentText(0, 1, 2, 3)],
26
                         diff.hunks)
27
28
    def test_eq(self):
29
        diff = multiparent.MultiParent.from_lines(LINES_1)
30
        diff2 = multiparent.MultiParent.from_lines(LINES_1)
31
        self.assertEqual(diff, diff2)
32
        diff3 = multiparent.MultiParent.from_lines(LINES_2)
33
        self.assertFalse(diff == diff3)
34
        self.assertFalse(diff == Mock(hunks=[multiparent.NewText(LINES_1)]))
35
        self.assertEqual(multiparent.MultiParent(
36
                         [multiparent.NewText(LINES_1),
37
                          multiparent.ParentText(0, 1, 2, 3)]),
38
                         multiparent.MultiParent(
39
                         [multiparent.NewText(LINES_1),
40
                          multiparent.ParentText(0, 1, 2, 3)]))
0.9.1 by Aaron Bentley
Get trivial case passing
41
42
43
class TestNewText(TestCase):
44
45
    def test_eq(self):
46
        self.assertEqual(multiparent.NewText([]), multiparent.NewText([]))
47
        self.assertFalse(multiparent.NewText(['a']) ==
48
                         multiparent.NewText(['b']))
0.9.2 by Aaron Bentley
Get single-parent comparison working
49
        self.assertFalse(multiparent.NewText(['a']) == Mock(lines=['a']))
50
51
52
class TestParentText(TestCase):
53
54
    def test_eq(self):
55
        self.assertEqual(multiparent.ParentText(1, 2, 3, 4),
56
                         multiparent.ParentText(1, 2, 3, 4))
57
        self.assertFalse(multiparent.ParentText(1, 2, 3, 4) ==
58
                         multiparent.ParentText(2, 2, 3, 4))
59
60
        self.assertFalse(multiparent.ParentText(1, 2, 3, 4) ==
61
                         Mock(parent=1, parent_pos=2, child_pos=3,
62
                              num_lines=4))