##// END OF EJS Templates
hg-cpython: use ancestor iterator impls from vcsgraph...
hg-cpython: use ancestor iterator impls from vcsgraph Differential Revision: https://phab.mercurial-scm.org/D11947

File last commit:

r48604:5ad37164 stable
r49350:35ebe6f8 default
Show More
__init__.py
43 lines | 1.1 KiB | text/x-python | PythonLexer
testing: add a utility function to wait for file create...
r47746 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"""
testing: fix _timeout_factor...
r48287 default = int(environ.get('HGTEST_TIMEOUT_DEFAULT', 360))
testing: add a utility function to wait for file create...
r47746 current = int(environ.get('HGTEST_TIMEOUT', default))
testing: fix _timeout_factor...
r48287 if current == 0:
return 1
testing: add a utility function to wait for file create...
r47746 return current / float(default)
def wait_file(path, timeout=10):
timeout *= _timeout_factor()
start = time.time()
while not os.path.exists(path):
Cédric Krier
testing: do not stop waiting if timeout is 0 (issue6541)...
r48457 if timeout and time.time() - start > timeout:
testing: add a utility function to wait for file create...
r47746 raise RuntimeError(b"timed out waiting for file: %s" % path)
time.sleep(0.01)
testing: add a `write_file` function...
r47747
def write_file(path, content=b''):
testing: make sure write_file is "atomic"...
r48604 if content:
write_path = b'%s.tmp' % path
else:
write_path = path
with open(write_path, 'wb') as f:
testing: add a `write_file` function...
r47747 f.write(content)
testing: make sure write_file is "atomic"...
r48604 if path != write_path:
os.rename(write_path, path)