Mercurial > hg
view tests/test-mdiff.py @ 38707:6b5ca1d0aa1e
obsolete: store user name and note in UTF-8 (issue5754) (BC)
Before, user names were stored in local encoding and transferred across
repositories, which made it impossible to restore non-ASCII user names on
different platforms. This patch fixes new markers to be encoded in UTF-8
and decoded back to local encoding when displaying. Existing markers are
unfixable so they may result in mojibake.
I don't like the API that requires metadata dict to be UTF-8 encoded, which
is a source of bugs, but there's no abstraction layer to process the encoding
thingy efficiently. So we apply the same rule as extras dict to obsstore
metadata.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 15 Jul 2018 18:24:57 +0900 |
parents | 8d0b0b533e09 |
children | 2372284d9457 |
line wrap: on
line source
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__)