Mercurial > hg
view tests/basic_test_result.py @ 40745:300f8564220f
tags: cache `repo.changelog` access when checking tags nodes
The tags reading process checks if the nodes referenced in tags exist. Caching
the access to `repo.changelog` provides a large speedup for repositories with
many tags.
running `hg perftags` in a large private repository
before: ! wall 0.393464 comb 0.390000 user 0.330000 sys 0.060000 (median of 25)
after: ! wall 0.267711 comb 0.270000 user 0.210000 sys 0.060000 (median of 38)
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Tue, 20 Nov 2018 10:38:15 +0000 |
parents | f4a214300957 |
children | 2372284d9457 |
line wrap: on
line source
from __future__ import absolute_import, print_function import unittest class TestResult(unittest._TextTestResult): def __init__(self, options, *args, **kwargs): super(TestResult, self).__init__(*args, **kwargs) self._options = options # unittest.TestResult didn't have skipped until 2.7. We need to # polyfill it. self.skipped = [] # We have a custom "ignored" result that isn't present in any Python # unittest implementation. It is very similar to skipped. It may make # sense to map it into skip some day. self.ignored = [] self.times = [] self._firststarttime = None # Data stored for the benefit of generating xunit reports. self.successes = [] self.faildata = {} def addFailure(self, test, reason): print("FAILURE!", test, reason) def addSuccess(self, test): print("SUCCESS!", test) def addError(self, test, err): print("ERR!", test, err) # Polyfill. def addSkip(self, test, reason): print("SKIP!", test, reason) def addIgnore(self, test, reason): print("IGNORE!", test, reason) def onStart(self, test): print("ON_START!", test) def onEnd(self): print("ON_END!") def addOutputMismatch(self, test, ret, got, expected): return False def stopTest(self, test, interrupted=False): super(TestResult, self).stopTest(test)