def test_stacking_instead(decor):
"""Test stacking when instead is specified last (which is WRONG)
Note that putting instead late in the stack WILL override
any previous decorators!
"""
tracker = Mock(name='tracker', return_value=None)
decorated = Mock(name='decorated', return_value='decorated')
tracker.__name__ = str('tracker')
decorated.__name__ = str('decorated')
fn = decor(tracker)(decorated)
fn = instead(tracker)(fn)
fn()
decorated.assert_not_called()
assert tracker.call_count == 1
assert tracker.call_args[0][:2] == ((), {})
assert isfunction(tracker.call_args[0][2])
评论列表
文章目录