1- from difflib_parser import difflib_parser
1+ from difflib_parser import difflib_parser , DiffCode
22
33
44def test_diff_parser_same_lines ():
55 parser = difflib_parser .DifflibParser (["Hello world" ], ["Hello world" ])
66 for diff in parser .iter_diffs ():
7- assert diff .code == difflib_parser . DiffCode .SAME
7+ assert diff .code == DiffCode .SAME
88
99
1010def test_diff_parser_added_line ():
1111 parser = difflib_parser .DifflibParser ([], ["Hello world" ])
1212 for diff in parser .iter_diffs ():
13- assert diff .code == difflib_parser . DiffCode .RIGHT_ONLY
13+ assert diff .code == DiffCode .RIGHT_ONLY
1414
1515
1616def test_diff_parser_removed_line ():
1717 parser = difflib_parser .DifflibParser (["Hello world" ], [])
1818 for diff in parser .iter_diffs ():
19- assert diff .code == difflib_parser .DiffCode .LEFT_ONLY
19+ assert diff .code == DiffCode .LEFT_ONLY
20+
21+
22+ def test_diff_parser_edited_multi_line ():
23+ parser = difflib_parser .DifflibParser (
24+ ["- Milk" , "- Eggs" , "Bread" , "- Apples" , "- Ham" ],
25+ ["- Milk" , "- Eggs" , "Bread" , "- Apples" , "- Ham1" ],
26+ )
27+ expected_codes = [
28+ DiffCode .SAME ,
29+ DiffCode .SAME ,
30+ DiffCode .SAME ,
31+ DiffCode .SAME ,
32+ DiffCode .CHANGED ,
33+ ]
34+ i = 0
35+ for diff in parser .iter_diffs ():
36+ assert diff .code == expected_codes [i ]
37+ if diff .code == DiffCode .CHANGED :
38+ assert diff .line == "- Ham"
39+ assert diff .newline == "- Ham1"
40+ assert diff .left_changes == []
41+ assert diff .right_changes == [5 ]
42+ i += 1
2043
2144
2245def test_diff_parser_changed_line_pattern_a ():
2346 # Pattern a essentially looks at the case where existing characters were added/removed
2447 parser = difflib_parser .DifflibParser (["Hello world" ], ["Hola world" ])
2548 for diff in parser .iter_diffs ():
26- assert diff .code == difflib_parser . DiffCode .CHANGED
49+ assert diff .code == DiffCode .CHANGED
2750 assert diff .line == "Hello world"
2851 assert diff .newline == "Hola world"
2952 assert diff .left_changes == [1 , 3 , 4 ]
@@ -34,7 +57,7 @@ def test_diff_parser_changed_line_pattern_b():
3457 # Pattern b essentially looks at the case where only additions were included
3558 parser = difflib_parser .DifflibParser (["Hello world" ], ["Hello world!" ])
3659 for diff in parser .iter_diffs ():
37- assert diff .code == difflib_parser . DiffCode .CHANGED
60+ assert diff .code == DiffCode .CHANGED
3861 assert diff .line == "Hello world"
3962 assert diff .newline == "Hello world!"
4063 assert diff .left_changes == []
@@ -45,7 +68,7 @@ def test_diff_parser_changed_line_pattern_c():
4568 # Pattern c essentially looks at the case where only removals were included
4669 parser = difflib_parser .DifflibParser (["Hello world" ], ["Hello worl" ])
4770 for diff in parser .iter_diffs ():
48- assert diff .code == difflib_parser . DiffCode .CHANGED
71+ assert diff .code == DiffCode .CHANGED
4972 assert diff .line == "Hello world"
5073 assert diff .newline == "Hello worl"
5174 assert diff .left_changes == [10 ]
0 commit comments