Mercurial > hg
changeset 47804:5ad37164a8fe stable
testing: make sure write_file is "atomic"
This make sure viewer cannot see the new file with partial content.
This was likely the cause of some flakiness in `test-nointerrupt.t`
Differential Revision: https://phab.mercurial-scm.org/D11250
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 03 Aug 2021 19:26:26 +0200 |
parents | 580bca200874 |
children | 8892f604e242 |
files | mercurial/testing/__init__.py |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/testing/__init__.py Wed Aug 04 19:45:13 2021 +0200 +++ b/mercurial/testing/__init__.py Tue Aug 03 19:26:26 2021 +0200 @@ -33,5 +33,11 @@ def write_file(path, content=b''): - with open(path, 'wb') as f: + if content: + write_path = b'%s.tmp' % path + else: + write_path = path + with open(write_path, 'wb') as f: f.write(content) + if path != write_path: + os.rename(write_path, path)