Skip to content

Commit 28d7812

Browse files
committed
Test decorated extra action
1 parent d985c7c commit 28d7812

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

tests/test_viewsets.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ class Action(models.Model):
3333
pass
3434

3535

36+
def decorate(fn):
37+
def wrapper(self, request, *args, **kwargs):
38+
return fn(self, request, *args, **kwargs)
39+
wrapper.__name__ = fn.__name__
40+
return wrapper
41+
42+
3643
class ActionViewSet(GenericViewSet):
3744
queryset = Action.objects.all()
3845

@@ -62,6 +69,11 @@ def custom_detail_action(self, request, *args, **kwargs):
6269
def unresolvable_detail_action(self, request, *args, **kwargs):
6370
raise NotImplementedError
6471

72+
@action(detail=False)
73+
@decorate
74+
def wrapped(self, request, *args, **kwargs):
75+
raise NotImplementedError
76+
6577

6678
class ActionNamesViewSet(GenericViewSet):
6779

@@ -157,6 +169,7 @@ def test_extra_actions(self):
157169
'detail_action',
158170
'list_action',
159171
'unresolvable_detail_action',
172+
'wrapped',
160173
]
161174

162175
self.assertEqual(actual, expected)
@@ -172,6 +185,7 @@ def test_list_view(self):
172185
expected = OrderedDict([
173186
('Custom list action', 'http://testserver/api/actions/custom_list_action/'),
174187
('List action', 'http://testserver/api/actions/list_action/'),
188+
('Wrapped', 'http://testserver/api/actions/wrapped/'),
175189
])
176190

177191
self.assertEqual(view.get_extra_action_url_map(), expected)

0 commit comments

Comments
 (0)