diff options
author | Raymond Hettinger <python@rcn.com> | 2011-04-12 22:25:30 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2011-04-12 22:25:30 (GMT) |
commit | 9180deb59cae74ed0ce0fab69d2c22a031fbf459 (patch) | |
tree | 5bc230f5da979530416c1a7085684cc0e6cd41cf /Lib/test/test_difflib.py | |
parent | 4d65224f68c73373587c2ea69ac91ad6dd4fd95c (diff) | |
download | cpython-9180deb59cae74ed0ce0fab69d2c22a031fbf459.zip cpython-9180deb59cae74ed0ce0fab69d2c22a031fbf459.tar.gz cpython-9180deb59cae74ed0ce0fab69d2c22a031fbf459.tar.bz2 |
Issue 11747: Fix output format for context diffs.
Diffstat (limited to 'Lib/test/test_difflib.py')
-rw-r--r-- | Lib/test/test_difflib.py | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/Lib/test/test_difflib.py b/Lib/test/test_difflib.py index b08be53..325449a 100644 --- a/Lib/test/test_difflib.py +++ b/Lib/test/test_difflib.py @@ -236,7 +236,7 @@ class TestOutputFormat(unittest.TestCase): cd = difflib.context_diff(*args, lineterm='') self.assertEqual(list(cd)[0:2], ["*** Original", "--- Current"]) - def test_range_format(self): + def test_range_format_unified(self): # Per the diff spec at http://www.unix.org/single_unix_specification/ spec = '''\ Each <range> field shall be of the form: @@ -246,13 +246,38 @@ class TestOutputFormat(unittest.TestCase): If a range is empty, its beginning line number shall be the number of the line just before the range, or 0 if the empty range starts the file. ''' - fmt = difflib._format_range + fmt = difflib._format_range_unified self.assertEqual(fmt(3,3), '3,0') self.assertEqual(fmt(3,4), '4') self.assertEqual(fmt(3,5), '4,2') self.assertEqual(fmt(3,6), '4,3') self.assertEqual(fmt(0,0), '0,0') + def test_range_format_context(self): + # Per the diff spec at http://www.unix.org/single_unix_specification/ + spec = '''\ + The range of lines in file1 shall be written in the following format + if the range contains two or more lines: + "*** %d,%d ****\n", <beginning line number>, <ending line number> + and the following format otherwise: + "*** %d ****\n", <ending line number> + The ending line number of an empty range shall be the number of the preceding line, + or 0 if the range is at the start of the file. + + Next, the range of lines in file2 shall be written in the following format + if the range contains two or more lines: + "--- %d,%d ----\n", <beginning line number>, <ending line number> + and the following format otherwise: + "--- %d ----\n", <ending line number> + ''' + fmt = difflib._format_range_context + self.assertEqual(fmt(3,3), '3') + self.assertEqual(fmt(3,4), '4') + self.assertEqual(fmt(3,5), '4,5') + self.assertEqual(fmt(3,6), '4,6') + self.assertEqual(fmt(0,0), '0') + + def test_main(): difflib.HtmlDiff._default_prefix = 0 Doctests = doctest.DocTestSuite(difflib) |