--- a/mercurial/util.py Wed Aug 01 16:03:32 2018 -0700
+++ b/mercurial/util.py Thu Aug 02 20:53:03 2018 +0100
@@ -2890,9 +2890,11 @@
# the number of nested timedcm context managers.
level = attr.ib(default=1)
- def __str__(self):
+ def __bytes__(self):
return timecount(self.elapsed) if self.elapsed else '<unknown>'
+ __str__ = encoding.strmethod(__bytes__)
+
@contextlib.contextmanager
def timedcm():
"""A context manager that produces timing information for a given context.
@@ -2929,7 +2931,8 @@
result = func(*args, **kwargs)
stderr = procutil.stderr
stderr.write('%s%s: %s\n' % (
- ' ' * time_stats.level * 2, func.__name__, time_stats))
+ ' ' * time_stats.level * 2, pycompat.bytestr(func.__name__),
+ time_stats))
return result
return wrapper
--- a/tests/test-util.py Wed Aug 01 16:03:32 2018 -0700
+++ b/tests/test-util.py Thu Aug 02 20:53:03 2018 +0100
@@ -70,8 +70,10 @@
def testtimedcmstatsstr(self):
stats = util.timedcmstats()
self.assertEqual(str(stats), '<unknown>')
+ self.assertEqual(bytes(stats), b'<unknown>')
stats.elapsed = 12.34
- self.assertEqual(str(stats), util.timecount(12.34))
+ self.assertEqual(str(stats), pycompat.sysstr(util.timecount(12.34)))
+ self.assertEqual(bytes(stats), util.timecount(12.34))
def testtimedcmcleanexit(self):
# timestamps 1, 4, elapsed time of 4 - 1 = 3