Beispiel #1
0
 def test_context_block_generation(self):
     diffs = [
         DiffItem(insert, 1),
         DiffItem(unchanged, 0),
         DiffItem(unchanged, 0),
         DiffItem(remove, 1)]
     expected = [
         Diff.ContextBlock(list, [diffs[0]]),
         Diff.ContextBlock(list, [diffs[3]])]
     diff_obj = Diff(list, diffs, context_limit=1)
     diff_obj.create_context_blocks()
     self.assertEqual(
         diff_obj.context_blocks, expected)
Beispiel #2
0
class DiffComparisonTests(unittest.TestCase):
    def setUp(self):
        diffs = [
            DiffItem(insert, 1),
            DiffItem(unchanged, 2),
            DiffItem(unchanged, 2),
            DiffItem(remove, 3)
        ]
        self.base_diff = Diff(list, diffs, context_limit=1, depth=0)
        self.base_diff.create_context_blocks()
        self.expected_diff = Diff(list, diffs, context_limit=1, depth=0)
        self.expected_diff.create_context_blocks()

    def test_diffs_compare_equal(self):
        self.assertEqual(self.base_diff, self.expected_diff)

    def test_diffs_differ_by_type(self):
        self.expected_diff.type = tuple
        self.assertNotEqual(self.base_diff, self.expected_diff)

    def test_diffs_differ_by_context_limit(self):
        self.expected_diff.context_limit = 2
        self.assertNotEqual(self.base_diff, self.expected_diff)

    def test_diffs_with_different_depths_compare_equal(self):
        d1 = diff([1, 2, 3], [2, 3])
        d2 = diff({'a': [1, 2, 3]}, {'a': [2, 3]})
        self.assertEqual(d1, d2.diffs[0].value)

    def test_diffs_differ_by_diffs(self):
        self.expected_diff.diffs = []
        self.assertNotEqual(self.base_diff, self.expected_diff)

    def test_diffs_differ_by_context_blocks(self):
        self.expected_diff.context_blocks = []
        self.assertNotEqual(self.base_diff, self.expected_diff)