D896: annotate: move annotatepair unit tests to a separate file
This revision was automatically updated to reflect the committed changes. Closed by commit rHG80215865d154: annotate: move annotatepair unit tests to a separate file (authored by sid0, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D896?vs=2317=2338 REVISION DETAIL https://phab.mercurial-scm.org/D896 AFFECTED FILES mercurial/context.py tests/test-annotate.py CHANGE DETAILS diff --git a/tests/test-annotate.py b/tests/test-annotate.py new file mode 100644 --- /dev/null +++ b/tests/test-annotate.py @@ -0,0 +1,75 @@ +from __future__ import absolute_import +from __future__ import print_function + +import unittest + +from mercurial import ( +mdiff, +) +from mercurial.context import ( +_annotatepair, +) + +class AnnotateTests(unittest.TestCase): +"""Unit tests for annotate code.""" + +def testannotatepair(self): +self.maxDiff = None # camelcase-required + +oldfctx = b'old' +p1fctx, p2fctx, childfctx = b'p1', b'p2', b'c' +olddata = b'a\nb\n' +p1data = b'a\nb\nc\n' +p2data = b'a\nc\nd\n' +childdata = b'a\nb2\nc\nc2\nd\n' +diffopts = mdiff.diffopts() + +def decorate(text, rev): +return ([(rev, i) for i in xrange(1, text.count(b'\n') + 1)], text) + +# Basic usage + +oldann = decorate(olddata, oldfctx) +p1ann = decorate(p1data, p1fctx) +p1ann = _annotatepair([oldann], p1fctx, p1ann, False, diffopts) +self.assertEqual(p1ann[0], [('old', 1), ('old', 2), ('p1', 3)]) + +p2ann = decorate(p2data, p2fctx) +p2ann = _annotatepair([oldann], p2fctx, p2ann, False, diffopts) +self.assertEqual(p2ann[0], [('old', 1), ('p2', 2), ('p2', 3)]) + +# Test with multiple parents (note the difference caused by ordering) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p1ann, p2ann], childfctx, childann, False, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('c', 2), ('p2', 2), ('c', 4), ('p2', 3)] +) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p2ann, p1ann], childfctx, childann, False, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('c', 2), ('p1', 3), ('c', 4), ('p2', 3)] +) + +# Test with skipchild (note the difference caused by ordering) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p1ann, p2ann], childfctx, childann, True, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('old', 2), ('p2', 2), ('p2', 2), ('p2', 3)] +) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p2ann, p1ann], childfctx, childann, True, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('old', 2), ('p1', 3), ('p1', 3), ('p2', 3)] +) + +if __name__ == '__main__': +import silenttestrunner +silenttestrunner.main(__name__) diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1112,56 +1112,7 @@ Additionally, if `skipchild` is True, replace all other lines with parent annotate data as well such that child is never blamed for any lines. ->>> oldfctx = b'old' ->>> p1fctx, p2fctx, childfctx = b'p1', b'p2', b'c' ->>> olddata = b'a\nb\n' ->>> p1data = b'a\nb\nc\n' ->>> p2data = b'a\nc\nd\n' ->>> childdata = b'a\nb2\nc\nc2\nd\n' ->>> diffopts = mdiff.diffopts() - ->>> def decorate(text, rev): -... return ([(rev, i) for i in xrange(1, text.count(b'\n') + 1)], text) - -Basic usage: - ->>> oldann = decorate(olddata, oldfctx) ->>> p1ann = decorate(p1data, p1fctx) ->>> p1ann = _annotatepair([oldann], p1fctx, p1ann, False, diffopts) ->>> p1ann[0] -[('old', 1), ('old', 2), ('p1', 3)] ->>> p2ann = decorate(p2data, p2fctx) ->>> p2ann = _annotatepair([oldann], p2fctx, p2ann, False, diffopts) ->>> p2ann[0] -[('old', 1), ('p2', 2), ('p2', 3)] - -Test with multiple parents (note the difference caused by ordering): - ->>> childann = decorate(childdata, childfctx) ->>> childann = _annotatepair([p1ann, p2ann], childfctx, childann, False, -... diffopts) ->>> childann[0] -[('old', 1), ('c', 2), ('p2', 2), ('c', 4), ('p2', 3)] - ->>> childann = decorate(childdata, childfctx) ->>> childann = _annotatepair([p2ann, p1ann], childfctx, childann, False, -... diffopts) ->>> childann[0] -[('old', 1), ('c', 2), ('p1', 3), ('c', 4), ('p2', 3)] - -Test with skipchild (note the difference caused by ordering): - ->>> childann = decorate(childdata, childfctx) ->>> childann
D896: annotate: move annotatepair unit tests to a separate file
sid0 created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY In upcoming patches the output is going to be significantly longer than it is today, and doctests don't allow wrapping the output. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D896 AFFECTED FILES mercurial/context.py tests/test-annotate.py CHANGE DETAILS diff --git a/tests/test-annotate.py b/tests/test-annotate.py new file mode 100644 --- /dev/null +++ b/tests/test-annotate.py @@ -0,0 +1,75 @@ +from __future__ import absolute_import +from __future__ import print_function + +import unittest + +from mercurial import ( +mdiff, +) +from mercurial.context import ( +_annotatepair, +) + +class AnnotateTests(unittest.TestCase): +"""Unit tests for annotate code.""" + +def testannotatepair(self): +self.maxDiff = None # camelcase-required + +oldfctx = b'old' +p1fctx, p2fctx, childfctx = b'p1', b'p2', b'c' +olddata = b'a\nb\n' +p1data = b'a\nb\nc\n' +p2data = b'a\nc\nd\n' +childdata = b'a\nb2\nc\nc2\nd\n' +diffopts = mdiff.diffopts() + +def decorate(text, rev): +return ([(rev, i) for i in xrange(1, text.count(b'\n') + 1)], text) + +# Basic usage + +oldann = decorate(olddata, oldfctx) +p1ann = decorate(p1data, p1fctx) +p1ann = _annotatepair([oldann], p1fctx, p1ann, False, diffopts) +self.assertEqual(p1ann[0], [('old', 1), ('old', 2), ('p1', 3)]) + +p2ann = decorate(p2data, p2fctx) +p2ann = _annotatepair([oldann], p2fctx, p2ann, False, diffopts) +self.assertEqual(p2ann[0], [('old', 1), ('p2', 2), ('p2', 3)]) + +# Test with multiple parents (note the difference caused by ordering) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p1ann, p2ann], childfctx, childann, False, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('c', 2), ('p2', 2), ('c', 4), ('p2', 3)] +) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p2ann, p1ann], childfctx, childann, False, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('c', 2), ('p1', 3), ('c', 4), ('p2', 3)] +) + +# Test with skipchild (note the difference caused by ordering) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p1ann, p2ann], childfctx, childann, True, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('old', 2), ('p2', 2), ('p2', 2), ('p2', 3)] +) + +childann = decorate(childdata, childfctx) +childann = _annotatepair([p2ann, p1ann], childfctx, childann, True, + diffopts) +self.assertEqual(childann[0], +[('old', 1), ('old', 2), ('p1', 3), ('p1', 3), ('p2', 3)] +) + +if __name__ == '__main__': +import silenttestrunner +silenttestrunner.main(__name__) diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1112,56 +1112,7 @@ Additionally, if `skipchild` is True, replace all other lines with parent annotate data as well such that child is never blamed for any lines. ->>> oldfctx = b'old' ->>> p1fctx, p2fctx, childfctx = b'p1', b'p2', b'c' ->>> olddata = b'a\nb\n' ->>> p1data = b'a\nb\nc\n' ->>> p2data = b'a\nc\nd\n' ->>> childdata = b'a\nb2\nc\nc2\nd\n' ->>> diffopts = mdiff.diffopts() - ->>> def decorate(text, rev): -... return ([(rev, i) for i in xrange(1, text.count(b'\n') + 1)], text) - -Basic usage: - ->>> oldann = decorate(olddata, oldfctx) ->>> p1ann = decorate(p1data, p1fctx) ->>> p1ann = _annotatepair([oldann], p1fctx, p1ann, False, diffopts) ->>> p1ann[0] -[('old', 1), ('old', 2), ('p1', 3)] ->>> p2ann = decorate(p2data, p2fctx) ->>> p2ann = _annotatepair([oldann], p2fctx, p2ann, False, diffopts) ->>> p2ann[0] -[('old', 1), ('p2', 2), ('p2', 3)] - -Test with multiple parents (note the difference caused by ordering): - ->>> childann = decorate(childdata, childfctx) ->>> childann = _annotatepair([p1ann, p2ann], childfctx, childann, False, -... diffopts) ->>> childann[0] -[('old', 1), ('c', 2), ('p2', 2), ('c', 4), ('p2', 3)] - ->>> childann = decorate(childdata, childfctx) ->>> childann = _annotatepair([p2ann, p1ann], childfctx, childann, False, -... diffopts) ->>> childann[0] -[('old', 1), ('c', 2), ('p1', 3), ('c', 4), ('p2', 3)] - -Test with skipchild (note the difference caused by ordering): - ->>> childann = decorate(childdata, childfctx) ->>> childann =