Mercurial > hg
view tests/test-storage.py @ 40190:31dfa7dac4c9
absorb: prompt user to accept absorb changes by default
Change the default absorb behaviour to print the changes out and then prompt
the user if they want to absorb the changes or not.
Providing the `-p` option still prints the result and exits. A new `-a` option
is provided which applies the changes without printing them, giving the
equivalent of the old behaviour.
Differential Revision: https://phab.mercurial-scm.org/D4999
author | Mark Thomas <mbthomas@fb.com> |
---|---|
date | Fri, 12 Oct 2018 17:48:40 +0000 |
parents | 324b4b10351e |
children | 9b2e1b00ee94 |
line wrap: on
line source
# This test verifies the conformance of various classes to various # storage interfaces. from __future__ import absolute_import import silenttestrunner from mercurial import ( error, filelog, revlog, transaction, ui as uimod, vfs as vfsmod, ) from mercurial.testing import ( storage as storagetesting, ) STATE = { 'lastindex': 0, 'ui': uimod.ui(), 'vfs': vfsmod.vfs(b'.', realpath=True), } def makefilefn(self): """Factory for filelog instances.""" fl = filelog.filelog(STATE['vfs'], b'filelog-%d' % STATE['lastindex']) STATE['lastindex'] += 1 return fl def maketransaction(self): vfsmap = {'plain': STATE['vfs'], 'store': STATE['vfs']} return transaction.transaction(STATE['ui'].warn, STATE['vfs'], vfsmap, b'journal', b'undo') def addrawrevision(self, fl, tr, node, p1, p2, linkrev, rawtext=None, delta=None, censored=False, ellipsis=False, extstored=False): flags = 0 if censored: flags |= revlog.REVIDX_ISCENSORED if ellipsis: flags |= revlog.REVIDX_ELLIPSIS if extstored: flags |= revlog.REVIDX_EXTSTORED if rawtext is not None: fl._revlog.addrawrevision(rawtext, tr, linkrev, p1, p2, node, flags) elif delta is not None: raise error.Abort('support for storing raw deltas not yet supported') else: raise error.Abort('must supply rawtext or delta arguments') # We may insert bad data. Clear caches to prevent e.g. cache hits to # bypass hash verification. fl._revlog.clearcaches() # Assigning module-level attributes that inherit from unittest.TestCase # is all that is needed to register tests. filelogindextests = storagetesting.makeifileindextests(makefilefn, maketransaction, addrawrevision) filelogdatatests = storagetesting.makeifiledatatests(makefilefn, maketransaction, addrawrevision) filelogmutationtests = storagetesting.makeifilemutationtests(makefilefn, maketransaction, addrawrevision) if __name__ == '__main__': silenttestrunner.main(__name__)