def test_grouped_opcodes_insert_blank_line_at_top(self): """ Regression test for #2090. Make sure that the equal block following an insert at the top of a file is correct. """ groups = diff.get_filtered_hunks(["B", "C", "D", "E", "F", "G"], ["A", "B", "C", "D", "E", "F", "G"], context=3) self.assertEqual([("insert", 0, 0, 0, 1), ("equal", 0, 3, 1, 4)], groups.next()) self.assertRaises(StopIteration, groups.next)
def test_grouped_opcodes_context1(self): groups = diff.get_filtered_hunks( ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['A', 'B', 'C', 'd', 'e', 'f', 'G', 'H'], context=1) group = groups.next() self.assertRaises(StopIteration, groups.next) self.assertEqual(('equal', 2, 3, 2, 3), group[0]) self.assertEqual(('replace', 3, 6, 3, 6), group[1]) self.assertEqual(('equal', 6, 7, 6, 7), group[2])
def test_grouped_opcodes_context1_ignorecase(self): old = ["A", "B", "C", "D", "E", "F", "G", "H"] new = ["X", "B", "C", "d", "e", "f", "G", "Y"] groups = diff.get_filtered_hunks(old, new, context=1, ignore_case=1) group = groups.next() self.assertEqual([("replace", 0, 1, 0, 1), ("equal", 1, 2, 1, 2)], group) group = groups.next() self.assertRaises(StopIteration, groups.next) self.assertEqual([("equal", 6, 7, 6, 7), ("replace", 7, 8, 7, 8)], group)
def test_grouped_opcodes_context1(self): groups = diff.get_filtered_hunks( ["A", "B", "C", "D", "E", "F", "G", "H"], ["A", "B", "C", "d", "e", "f", "G", "H"], context=1 ) group = groups.next() self.assertRaises(StopIteration, groups.next) self.assertEqual(("equal", 2, 3, 2, 3), group[0]) self.assertEqual(("replace", 3, 6, 3, 6), group[1]) self.assertEqual(("equal", 6, 7, 6, 7), group[2])
def test_grouped_opcodes_context1(self): groups = diff.get_filtered_hunks( ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['A', 'B', 'C', 'd', 'e', 'f', 'G', 'H'], context=1) group = next(groups) self.assertRaises(StopIteration, next, groups) self.assertEqual(('equal', 2, 3, 2, 3), group[0]) self.assertEqual(('replace', 3, 6, 3, 6), group[1]) self.assertEqual(('equal', 6, 7, 6, 7), group[2])
def test_grouped_opcodes_insert_blank_line_at_top(self): """ Regression test for #2090. Make sure that the equal block following an insert at the top of a file is correct. """ groups = diff.get_filtered_hunks(['B', 'C', 'D', 'E', 'F', 'G'], ['A', 'B', 'C', 'D', 'E', 'F', 'G'], context=3) self.assertEqual([('insert', 0, 0, 0, 1), ('equal', 0, 3, 1, 4)], next(groups)) self.assertRaises(StopIteration, next, groups)
def test_grouped_opcodes_context1_ignorecase(self): old = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] new = ['X', 'B', 'C', 'd', 'e', 'f', 'G', 'Y'] groups = diff.get_filtered_hunks(old, new, context=1, ignore_case=1) group = next(groups) self.assertEqual([('replace', 0, 1, 0, 1), ('equal', 1, 2, 1, 2)], group) group = next(groups) self.assertRaises(StopIteration, next, groups) self.assertEqual([('equal', 6, 7, 6, 7), ('replace', 7, 8, 7, 8)], group)
def test_grouped_opcodes_insert_blank_line_at_top(self): """ Regression test for #2090. Make sure that the equal block following an insert at the top of a file is correct. """ groups = diff.get_filtered_hunks(['B', 'C', 'D', 'E', 'F', 'G'], ['A', 'B', 'C', 'D', 'E', 'F', 'G'], context=3) self.assertEqual([('insert', 0, 0, 0, 1), ('equal', 0, 3, 1, 4)], groups.next()) self.assertRaises(StopIteration, groups.next)
def test_grouped_opcodes_context1_ignorecase(self): old = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] new = ['X', 'B', 'C', 'd', 'e', 'f', 'G', 'Y'] groups = diff.get_filtered_hunks(old, new, context=1, ignore_case=1) group = groups.next() self.assertEqual([('replace', 0, 1, 0, 1), ('equal', 1, 2, 1, 2)], group) group = groups.next() self.assertRaises(StopIteration, groups.next) self.assertEqual([('equal', 6, 7, 6, 7), ('replace', 7, 8, 7, 8)], group)
def test_grouped_opcodes_full_context(self): old = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] new = ['X', 'B', 'C', 'd', 'e', 'f', 'G', 'Y'] groups = diff.get_filtered_hunks(old, new, context=None) group = groups.next() self.assertRaises(StopIteration, groups.next) self.assertEqual([ ('replace', 0, 1, 0, 1), ('equal', 1, 3, 1, 3), ('replace', 3, 6, 3, 6), ('equal', 6, 7, 6, 7), ('replace', 7, 8, 7, 8), ], group) groups = diff.get_filtered_hunks(old, new, context=None, ignore_case=1) group = groups.next() self.assertRaises(StopIteration, groups.next) self.assertEqual([ ('replace', 0, 1, 0, 1), ('equal', 1, 7, 1, 7), ('replace', 7, 8, 7, 8), ], group)
def get_opcodes(*args, **kwargs): for hunk in diff.get_filtered_hunks(*args, **kwargs): for opcode in hunk: yield opcode