diff options
author | Michele Simionato <michele.simionato@gmail.com> | 2018-04-15 12:09:32 +0200 |
---|---|---|
committer | Michele Simionato <michele.simionato@gmail.com> | 2018-04-15 12:09:32 +0200 |
commit | c7aa9cb24de431c73ddb5a5fa024a0e68c0eb3c9 (patch) | |
tree | 2eb3fd4769aa83c33c141a719f3abbcf7290a8e7 | |
parent | 521ed6fca86db449e902580a2d2d08e99ed1241b (diff) | |
download | python-decorator-git-c7aa9cb24de431c73ddb5a5fa024a0e68c0eb3c9.tar.gz |
Fixed decorator factories with positional arguments
-rw-r--r-- | src/decorator.py | 4 | ||||
-rw-r--r-- | src/tests/documentation.py | 8 | ||||
-rw-r--r-- | src/tests/test.py | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/decorator.py b/src/decorator.py index 093feef..b31356a 100644 --- a/src/decorator.py +++ b/src/decorator.py @@ -261,12 +261,12 @@ def decorator(caller, _func=None): doc = caller.__call__.__doc__ evaldict = dict(_call=caller, _decorate_=decorate) dec = FunctionMaker.create( - '%s(func, %s)' % (name, defaultargs), + '%s(%s func)' % (name, defaultargs), 'if func is None: return lambda func: _decorate_(func, _call, (%s))\n' 'return _decorate_(func, _call, (%s))' % (defaultargs, defaultargs), evaldict, doc=doc, module=caller.__module__, __wrapped__=caller) if defaults: - dec.__defaults__ = (None,) + defaults + dec.__defaults__ = defaults + (None,) return dec diff --git a/src/tests/documentation.py b/src/tests/documentation.py index 3a013dc..2588768 100644 --- a/src/tests/documentation.py +++ b/src/tests/documentation.py @@ -412,7 +412,7 @@ available. For instance: .. code-block:: python - >>> @blocking(msg="Please wait ...") + >>> @blocking("Please wait ...") ... def read_data(): ... time.sleep(3) # simulate a blocking resource ... return "some data" @@ -1524,15 +1524,15 @@ class Action(object): ... PermissionError: User does not have the permission to run insert! """ - @restricted(user_class=User) + @restricted(User) def view(self): pass - @restricted(user_class=PowerUser) + @restricted(PowerUser) def insert(self): pass - @restricted(user_class=Admin) + @restricted(Admin) def delete(self): pass diff --git a/src/tests/test.py b/src/tests/test.py index cd99e95..b42d062 100644 --- a/src/tests/test.py +++ b/src/tests/test.py @@ -134,8 +134,8 @@ class ExtraTestCase(unittest.TestCase): def f(x): return x - self.assertEqual(add(f)(0), 1) - self.assertEqual(add(f, 2)(0), 2) + self.assertEqual(add(2, f)(0), 2) + # ################### test dispatch_on ############################# # # adapted from test_functools in Python 3.5 |