summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_difflib.py
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2011-04-12 22:25:30 (GMT)
committerRaymond Hettinger <python@rcn.com>2011-04-12 22:25:30 (GMT)
commit9180deb59cae74ed0ce0fab69d2c22a031fbf459 (patch)
tree5bc230f5da979530416c1a7085684cc0e6cd41cf /Lib/test/test_difflib.py
parent4d65224f68c73373587c2ea69ac91ad6dd4fd95c (diff)
downloadcpython-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.py29
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)