summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichele Simionato <michele.simionato@gmail.com>2018-04-15 12:09:32 +0200
committerMichele Simionato <michele.simionato@gmail.com>2018-04-15 12:09:32 +0200
commitc7aa9cb24de431c73ddb5a5fa024a0e68c0eb3c9 (patch)
tree2eb3fd4769aa83c33c141a719f3abbcf7290a8e7
parent521ed6fca86db449e902580a2d2d08e99ed1241b (diff)
downloadpython-decorator-git-c7aa9cb24de431c73ddb5a5fa024a0e68c0eb3c9.tar.gz
Fixed decorator factories with positional arguments
-rw-r--r--src/decorator.py4
-rw-r--r--src/tests/documentation.py8
-rw-r--r--src/tests/test.py4
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