##// END OF EJS Templates
pycompat: export queue module instead of symbols in module (API)...
pycompat: export queue module instead of symbols in module (API) Previously, pycompat and util re-exported individual symbols from the queue module. This had the side-effect of forcing the loading of the queue module whenever pycompat/util was imported. These symbols aren't used very often. So importing the module to get a handle on the symbols is wasteful. This commit changes pycompat so it no longer exports the individual symbols in the queue module. Instead, we make the imported module a "public" symbol. We drop the individual symbol aliases from the util module. All consumers are updated to use pycompat.queue.* instead. This change makes 300 invocations of `hg log -r. -T '{rev}\n'` a little faster: before: 18.44s after: 17.87s Differential Revision: https://phab.mercurial-scm.org/D3441

File last commit:

r36346:8d0b0b53 default
r38100:8fb99853 @25 default
Show More
test-mdiff.py
24 lines | 668 B | text/x-python | PythonLexer
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__)