##// END OF EJS Templates
lfs: don't require the .hglfs file to be tracked to control the policy...
lfs: don't require the .hglfs file to be tracked to control the policy The .hgignore file doesn't need to be tracked, nor does the git equivalent of this file. I'm still a little concerned about the effects of forgetting to commit this file. But the fact that conversions maintain the hashes if only the normal vs external storage changes, should make this less risky.

File last commit:

r34434:2f5a135b default
r35825:4425790f stable
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__)