Mercurial > hg
view tests/test-extensions-wrapfunction.py @ 32847:e5a6a540ae63
check-config: use compiled regexp
And split the regexp across multiple lines to make it easier to read.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 15 Jun 2017 10:36:23 -0700 |
parents | 19578bb84731 |
children | 47e52f079a57 |
line wrap: on
line source
from __future__ import absolute_import, print_function from mercurial import extensions def genwrapper(x): def f(orig, *args, **kwds): return [x] + orig(*args, **kwds) f.x = x return f def getid(wrapper): return getattr(wrapper, 'x', '-') wrappers = [genwrapper(i) for i in range(5)] class dummyclass(object): def getstack(self): return ['orig'] dummy = dummyclass() def batchwrap(wrappers): for w in wrappers: extensions.wrapfunction(dummy, 'getstack', w) print('wrap %d: %s' % (getid(w), dummy.getstack())) def batchunwrap(wrappers): for w in wrappers: result = None try: result = extensions.unwrapfunction(dummy, 'getstack', w) msg = str(dummy.getstack()) except (ValueError, IndexError) as e: msg = e.__class__.__name__ print('unwrap %s: %s: %s' % (getid(w), getid(result), msg)) batchwrap(wrappers + [wrappers[0]]) batchunwrap([(wrappers[i] if i >= 0 else None) for i in [3, None, 0, 4, 0, 2, 1, None]])