Skip to content

Commit d125faa

Browse files
committed
allow extra **kwargs in @deferred_performer-wrapped functions
1 parent 8a840a3 commit d125faa

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

txeffect/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ def perform_foo(dispatcher, foo):
6666
return do_side_effecting_deferred_operation(foo)
6767
"""
6868
@wraps(f)
69-
def deferred_wrapper(*args):
69+
def deferred_wrapper(*args, **kwargs):
7070
box = args[-1]
7171
pass_args = args[:-1]
7272
try:
73-
result = f(*pass_args)
73+
result = f(*pass_args, **kwargs)
7474
except:
7575
box.fail(sys.exc_info())
7676
else:

txeffect/test_txeffect.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,16 @@ def original(something, dispatcher, intent):
210210
wrapped = deferred_performer(new_func)
211211
self.assertEqual(wrapped.__name__, 'deferred_wrapper')
212212

213+
def test_kwargs(self):
214+
"""Additional kwargs are passed through."""
215+
@deferred_performer
216+
def p(dispatcher, intent, extra):
217+
return extra
218+
219+
dispatcher = lambda _: partial(p, extra='extra val')
220+
result = self.successResultOf(perform(dispatcher, Effect('foo')))
221+
self.assertEqual(result, 'extra val')
222+
213223

214224
class ExcInfoToFailureTests(TestCase):
215225
"""Tests for :func:`exc_info_to_failure`."""

0 commit comments

Comments
 (0)