Mercurial > hg
changeset 46984:99c629101b73
testing: add a utility function to wait for file create
This is similar to `tests/testlib/wait-on-file`, but for the python code
Differential Revision: https://phab.mercurial-scm.org/D10476
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 19 Apr 2021 19:10:18 +0200 |
parents | e38718838808 |
children | 52cee44aa1a0 |
files | mercurial/testing/__init__.py |
diffstat | 1 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/testing/__init__.py Mon Apr 19 19:09:18 2021 +0200 +++ b/mercurial/testing/__init__.py Mon Apr 19 19:10:18 2021 +0200 @@ -0,0 +1,30 @@ +from __future__ import ( + absolute_import, + division, +) + +import os +import time + + +# work around check-code complains +# +# This is a simple log level module doing simple test related work, we can't +# import more things, and we do not need it. +environ = getattr(os, 'environ') + + +def _timeout_factor(): + """return the current modification to timeout""" + default = int(environ.get('HGTEST_TIMEOUT_DEFAULT', 1)) + current = int(environ.get('HGTEST_TIMEOUT', default)) + return current / float(default) + + +def wait_file(path, timeout=10): + timeout *= _timeout_factor() + start = time.time() + while not os.path.exists(path): + if time.time() - start > timeout: + raise RuntimeError(b"timed out waiting for file: %s" % path) + time.sleep(0.01)