summaryrefslogtreecommitdiff
path: root/Lib/test/test_difflib.py
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2011-04-11 12:40:58 -0700
committerRaymond Hettinger <python@rcn.com>2011-04-11 12:40:58 -0700
commit085a066ae3c98c4b204d46c6c7a22bb5c94081dd (patch)
tree96356b18595c28cfb397add5a20ebcdfa00a0ce7 /Lib/test/test_difflib.py
parent10e41aa79a4676a7a26937dc261d8550fae0cfd9 (diff)
downloadcpython-085a066ae3c98c4b204d46c6c7a22bb5c94081dd.tar.gz
Issue #11747: Fix range formatting in context and unified diffs.
Diffstat (limited to 'Lib/test/test_difflib.py')
-rw-r--r--Lib/test/test_difflib.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_difflib.py b/Lib/test/test_difflib.py
index a263ee6c73..b08be53dd9 100644
--- a/Lib/test/test_difflib.py
+++ b/Lib/test/test_difflib.py
@@ -236,6 +236,22 @@ class TestOutputFormat(unittest.TestCase):
cd = difflib.context_diff(*args, lineterm='')
self.assertEqual(list(cd)[0:2], ["*** Original", "--- Current"])
+ def test_range_format(self):
+ # Per the diff spec at http://www.unix.org/single_unix_specification/
+ spec = '''\
+ Each <range> field shall be of the form:
+ %1d", <beginning line number> if the range contains exactly one line,
+ and:
+ "%1d,%1d", <beginning line number>, <number of lines> otherwise.
+ 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
+ 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_main():
difflib.HtmlDiff._default_prefix = 0