Mercurial > hg
view mercurial/txnutil.py @ 39650:d8f07b16abfc
phabricator: add support for using the vcr library to mock interactions
I'll use this in an upcoming test. The decorator dancing in this is
more complicated than I'd like, but it beats repeating all this code
everywhere.
Differential Revision: https://phab.mercurial-scm.org/D4600
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sat, 15 Sep 2018 00:20:03 -0400 |
parents | 206532700213 |
children | 2372284d9457 |
line wrap: on
line source
# txnutil.py - transaction related utilities # # Copyright FUJIWARA Katsunori <foozy@lares.dti.ne.jp> and others # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import import errno from . import ( encoding, ) def mayhavepending(root): '''return whether 'root' may have pending changes, which are visible to this process. ''' return root == encoding.environ.get('HG_PENDING') def trypending(root, vfs, filename, **kwargs): '''Open file to be read according to HG_PENDING environment variable This opens '.pending' of specified 'filename' only when HG_PENDING is equal to 'root'. This returns '(fp, is_pending_opened)' tuple. ''' if mayhavepending(root): try: return (vfs('%s.pending' % filename, **kwargs), True) except IOError as inst: if inst.errno != errno.ENOENT: raise return (vfs(filename, **kwargs), False)