annotate tests/mocktime.py @ 42742:334c1ea57136
discovery: new devel.discovery.randomize option
By default, this is True, but setting it to False is a uniform
way to kill all randomness in integration tests such as test-setdiscovery.t
By "uniform" we mean that it can be passed to implementations in other
languages, for which the monkey-patching of random.sample would be
irrelevant.
In the above mentioned test file, we use it right away,
replacing the adhoc extension that had the same purpose, and to derandomize a
case with many round-trips, that we'll need to behave uniformly in the Rust
version.
Differential Revision: https://phab.mercurial-scm.org/D6427
author |
Georges Racinet <georges.racinet@octobus.net> |
date |
Tue, 21 May 2019 17:44:15 +0200 |
parents |
12b355964de8 |
children |
2372284d9457 |
rev |
line source |
34316
|
1 from __future__ import absolute_import
|
|
2
|
|
3 import os
|
|
4 import time
|
|
5
|
|
6 class mocktime(object):
|
|
7 def __init__(self, increment):
|
|
8 self.time = 0
|
|
9 self.increment = [float(s) for s in increment.split()]
|
|
10 self.pos = 0
|
|
11
|
|
12 def __call__(self):
|
|
13 self.time += self.increment[self.pos % len(self.increment)]
|
|
14 self.pos += 1
|
|
15 return self.time
|
|
16
|
|
17 def uisetup(ui):
|
|
18 time.time = mocktime(os.environ.get('MOCKTIME', '0.1'))
|