Mercurial > public > mercurial-scm > hg
comparison tests/test-extensions-wrapfunction.py @ 34128:82bd4c5a81e5
extensions: fix wrapcommand/function of class instance
5361771f9714 changed _updatewrapper() to copy the __name__ attribute, but
not all callable objects has __name__.
Spotted by loading mq with extdiff.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 10 Sep 2017 23:37:14 +0900 |
parents | 47e52f079a57 |
children | ac865f020b99 |
comparison
equal
deleted
inserted
replaced
34127:709b44f38ab9 | 34128:82bd4c5a81e5 |
---|---|
52 # managers still unwrap their wrappings. | 52 # managers still unwrap their wrappings. |
53 extensions.wrapfunction(dummy, 'getstack', wrappers[2]) | 53 extensions.wrapfunction(dummy, 'getstack', wrappers[2]) |
54 print('context manager', dummy.getstack()) | 54 print('context manager', dummy.getstack()) |
55 print('context manager', dummy.getstack()) | 55 print('context manager', dummy.getstack()) |
56 print('context manager', dummy.getstack()) | 56 print('context manager', dummy.getstack()) |
57 | |
58 # Wrap callable object which has no __name__ | |
59 class callableobj(object): | |
60 def __call__(self): | |
61 return ['orig'] | |
62 dummy.cobj = callableobj() | |
63 extensions.wrapfunction(dummy, 'cobj', wrappers[0]) | |
64 print('wrap callable object', dummy.cobj()) |