tests/test-mdiff.py
author Kyle Lippincott <spectral@google.com>
Tue, 16 Oct 2018 07:21:00 -0700
changeset 40341 d916ed3ca951
parent 36328 8d0b0b533e09
child 43076 2372284d9457
permissions -rw-r--r--
revisions: when using prefixhexnode, ensure we prefix "0" Previously, if using `experimental.revisions.disambiguatewithin` (and it didn't include rev0), and '0' was the shortest identifier in that disambiguation set, we printed it as the shortest *without* a prefix. This was because we had logic to determine "if the prefix is a pure integer, but starts with 0, we don't need to prefix with 'x': 01 is not a synonym for revision #1", but didn't handle the case where prefix == 0 (which is a pure integer, and starts with 0... but it *is* "rev0"). Differential Revision: https://phab.mercurial-scm.org/D5113

from __future__ import absolute_import
from __future__ import print_function

import unittest

from mercurial import (
    mdiff,
)

class splitnewlinesTests(unittest.TestCase):

    def test_splitnewlines(self):
        cases = {b'a\nb\nc\n': [b'a\n', b'b\n', b'c\n'],
                 b'a\nb\nc': [b'a\n', b'b\n', b'c'],
                 b'a\nb\nc\n\n': [b'a\n', b'b\n', b'c\n', b'\n'],
                 b'': [],
                 b'abcabc': [b'abcabc'],
                 }
        for inp, want in cases.items():
            self.assertEqual(mdiff.splitnewlines(inp), want)

if __name__ == '__main__':
    import silenttestrunner
    silenttestrunner.main(__name__)