diff options
author | Patrick Ng <pnpnpn@users.noreply.github.com> | 2014-10-18 16:37:23 -0400 |
---|---|---|
committer | Patrick Ng <pnpnpn@users.noreply.github.com> | 2014-10-18 16:37:23 -0400 |
commit | 7f86ec1acafebe74fcc97324d164ff46de6479d4 (patch) | |
tree | 4131f9813b25a40d2985b80bdcb36053c56893ec | |
parent | d13b00aadb9dc2953ae42d0821787a94619f4520 (diff) | |
parent | e7dfe05682a1070c255f272d28a14bb331978cae (diff) | |
download | timeout-decorator-7f86ec1acafebe74fcc97324d164ff46de6479d4.tar.gz |
Merge pull request #5 from toddsifleet/tws-fix-issue-2
Use functools.wraps in decorator
-rw-r--r-- | tests/test_timeout_decorator.py | 8 | ||||
-rw-r--r-- | timeout_decorator/timeout_decorator.py | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/tests/test_timeout_decorator.py b/tests/test_timeout_decorator.py index 143dfc8..c40c82e 100644 --- a/tests/test_timeout_decorator.py +++ b/tests/test_timeout_decorator.py @@ -37,3 +37,11 @@ def test_timeout_ok(): def f(): time.sleep(1) f() + + +def test_function_name(): + @timeout(seconds=2) + def func_name(): + pass + + assert func_name.__name__ == 'func_name' diff --git a/timeout_decorator/timeout_decorator.py b/timeout_decorator/timeout_decorator.py index 2b86bfb..e44f544 100644 --- a/timeout_decorator/timeout_decorator.py +++ b/timeout_decorator/timeout_decorator.py @@ -11,6 +11,7 @@ from __future__ import unicode_literals from __future__ import division import signal +from functools import wraps ############################################################ # Timeout @@ -32,6 +33,7 @@ def timeout(seconds=None): def handler(signum, frame): raise TimeoutError() + @wraps(f) def new_f(*args, **kwargs): old = signal.signal(signal.SIGALRM, handler) @@ -46,6 +48,5 @@ def timeout(seconds=None): signal.signal(signal.SIGALRM, old) signal.alarm(0) return result - new_f.func_name = f.func_name return new_f return decorate |