##// END OF EJS Templates
help: adding a topic on flags...
help: adding a topic on flags This is a short topic to explain how command-line flags can be specified. Some users have been confused by hg offerring different flag syntax than some other libraries, so it'd be nice to point them to this rather than explaining it every time. Differential Revision: https://phab.mercurial-scm.org/D1270

File last commit:

r34434:2f5a135b default
r35036:b0262b25 default
Show More
test-annotate.py
104 lines | 3.3 KiB | text/x-python | PythonLexer
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431 from __future__ import absolute_import
from __future__ import print_function
import unittest
from mercurial import (
mdiff,
)
from mercurial.context import (
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 annotateline,
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431 _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):
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 return ([annotateline(fctx=rev, lineno=i)
for i in xrange(1, text.count(b'\n') + 1)],
text)
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
# Basic usage
oldann = decorate(olddata, oldfctx)
p1ann = decorate(p1data, p1fctx)
p1ann = _annotatepair([oldann], p1fctx, p1ann, False, diffopts)
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 self.assertEqual(p1ann[0], [
annotateline('old', 1),
annotateline('old', 2),
annotateline('p1', 3),
])
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
p2ann = decorate(p2data, p2fctx)
p2ann = _annotatepair([oldann], p2fctx, p2ann, False, diffopts)
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 self.assertEqual(p2ann[0], [
annotateline('old', 1),
annotateline('p2', 2),
annotateline('p2', 3),
])
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
# Test with multiple parents (note the difference caused by ordering)
childann = decorate(childdata, childfctx)
childann = _annotatepair([p1ann, p2ann], childfctx, childann, False,
diffopts)
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 self.assertEqual(childann[0], [
annotateline('old', 1),
annotateline('c', 2),
annotateline('p2', 2),
annotateline('c', 4),
annotateline('p2', 3),
])
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
childann = decorate(childdata, childfctx)
childann = _annotatepair([p2ann, p1ann], childfctx, childann, False,
diffopts)
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 self.assertEqual(childann[0], [
annotateline('old', 1),
annotateline('c', 2),
annotateline('p1', 3),
annotateline('c', 4),
annotateline('p2', 3),
])
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
# Test with skipchild (note the difference caused by ordering)
childann = decorate(childdata, childfctx)
childann = _annotatepair([p1ann, p2ann], childfctx, childann, True,
diffopts)
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 self.assertEqual(childann[0], [
annotateline('old', 1),
Siddharth Agarwal
annotate: track whether a particular annotation was the result of a skip...
r34434 annotateline('old', 2, True),
# note that this line was carried over from earlier so it is *not*
# marked skipped
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 annotateline('p2', 2),
Siddharth Agarwal
annotate: track whether a particular annotation was the result of a skip...
r34434 annotateline('p2', 2, True),
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 annotateline('p2', 3),
])
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
childann = decorate(childdata, childfctx)
childann = _annotatepair([p2ann, p1ann], childfctx, childann, True,
diffopts)
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 self.assertEqual(childann[0], [
annotateline('old', 1),
Siddharth Agarwal
annotate: track whether a particular annotation was the result of a skip...
r34434 annotateline('old', 2, True),
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 annotateline('p1', 3),
Siddharth Agarwal
annotate: track whether a particular annotation was the result of a skip...
r34434 annotateline('p1', 3, True),
Siddharth Agarwal
annotate: introduce attr for storing per-line annotate data...
r34433 annotateline('p2', 3),
])
Siddharth Agarwal
annotate: move annotatepair unit tests to a separate file...
r34431
if __name__ == '__main__':
import silenttestrunner
silenttestrunner.main(__name__)