diff -r dd5b47fb0860 -r 01b0805534bb tests/testlib/crash_transaction_late.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/testlib/crash_transaction_late.py Fri Feb 28 03:05:52 2020 +0100 @@ -0,0 +1,32 @@ +# tiny extension to abort a transaction very late during test +# +# Copyright 2020 Pierre-Yves David +# +# 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 + +from mercurial import ( + error, + transaction, +) + + +def abort(fp): + raise error.Abort(b"This is a late abort") + + +def reposetup(ui, repo): + + transaction.postfinalizegenerators.add(b'late-abort') + + class LateAbortRepo(repo.__class__): + def transaction(self, *args, **kwargs): + tr = super(LateAbortRepo, self).transaction(*args, **kwargs) + tr.addfilegenerator( + b'late-abort', [b'late-abort'], abort, order=9999999 + ) + return tr + + repo.__class__ = LateAbortRepo