Mercurial > hg
comparison tests/test-util.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | 331ab85e910b |
children | 5aafc3c5bdec |
comparison
equal
deleted
inserted
replaced
43075:57875cf423c9 | 43076:2372284d9457 |
---|---|
4 import contextlib | 4 import contextlib |
5 import itertools | 5 import itertools |
6 import unittest | 6 import unittest |
7 | 7 |
8 from mercurial import pycompat, util, utils | 8 from mercurial import pycompat, util, utils |
9 | |
9 | 10 |
10 @contextlib.contextmanager | 11 @contextlib.contextmanager |
11 def mocktimer(incr=0.1, *additional_targets): | 12 def mocktimer(incr=0.1, *additional_targets): |
12 """Replaces util.timer and additional_targets with a mock | 13 """Replaces util.timer and additional_targets with a mock |
13 | 14 |
44 # restore originals | 45 # restore originals |
45 util.timer = orig | 46 util.timer = orig |
46 for args in additional_origs: | 47 for args in additional_origs: |
47 setattr(*args) | 48 setattr(*args) |
48 | 49 |
50 | |
49 # attr.s default factory for util.timedstats.start binds the timer we | 51 # attr.s default factory for util.timedstats.start binds the timer we |
50 # need to mock out. | 52 # need to mock out. |
51 _start_default = (util.timedcmstats.start.default, 'factory') | 53 _start_default = (util.timedcmstats.start.default, 'factory') |
54 | |
52 | 55 |
53 @contextlib.contextmanager | 56 @contextlib.contextmanager |
54 def capturestderr(): | 57 def capturestderr(): |
55 """Replace utils.procutil.stderr with a pycompat.bytesio instance | 58 """Replace utils.procutil.stderr with a pycompat.bytesio instance |
56 | 59 |
63 utils.procutil.stderr = pycompat.bytesio() | 66 utils.procutil.stderr = pycompat.bytesio() |
64 try: | 67 try: |
65 yield utils.procutil.stderr | 68 yield utils.procutil.stderr |
66 finally: | 69 finally: |
67 utils.procutil.stderr = orig | 70 utils.procutil.stderr = orig |
71 | |
68 | 72 |
69 class timedtests(unittest.TestCase): | 73 class timedtests(unittest.TestCase): |
70 def testtimedcmstatsstr(self): | 74 def testtimedcmstatsstr(self): |
71 stats = util.timedcmstats() | 75 stats = util.timedcmstats() |
72 self.assertEqual(str(stats), '<unknown>') | 76 self.assertEqual(str(stats), '<unknown>') |
125 # timestamps 1, 2, 3, 4, elapsed time of 3 - 2 = 1 and 4 - 1 = 3 | 129 # timestamps 1, 2, 3, 4, elapsed time of 3 - 2 = 1 and 4 - 1 = 3 |
126 with mocktimer(1, _start_default): | 130 with mocktimer(1, _start_default): |
127 with capturestderr() as out: | 131 with capturestderr() as out: |
128 testfunc(2) | 132 testfunc(2) |
129 | 133 |
130 self.assertEqual(out.getvalue(), ( | 134 self.assertEqual( |
131 b' testfunc: 1.000 s\n' | 135 out.getvalue(), |
132 b' testfunc: 3.000 s\n' | 136 (b' testfunc: 1.000 s\n' b' testfunc: 3.000 s\n'), |
133 )) | 137 ) |
138 | |
134 | 139 |
135 if __name__ == '__main__': | 140 if __name__ == '__main__': |
136 import silenttestrunner | 141 import silenttestrunner |
142 | |
137 silenttestrunner.main(__name__) | 143 silenttestrunner.main(__name__) |