MCPcopy
hub / github.com/django/django / test_user_passes_test_composition

Method test_user_passes_test_composition

tests/decorators/tests.py:90–120  ·  view source on GitHub ↗

The user_passes_test decorator can be applied multiple times (#9474).

(self)

Source from the content-addressed store, hash-verified

88 self.assertEqual(fully_decorated.__dict__["anything"], "Expected __dict__")
89
90 def test_user_passes_test_composition(self):
91 """
92 The user_passes_test decorator can be applied multiple times (#9474).
93 """
94
95 def test1(user):
96 user.decorators_applied.append("test1")
97 return True
98
99 def test2(user):
100 user.decorators_applied.append("test2")
101 return True
102
103 def callback(request):
104 return request.user.decorators_applied
105
106 callback = user_passes_test(test1)(callback)
107 callback = user_passes_test(test2)(callback)
108
109 class DummyUser:
110 pass
111
112 class DummyRequest:
113 pass
114
115 request = DummyRequest()
116 request.user = DummyUser()
117 request.user.decorators_applied = []
118 response = callback(request)
119
120 self.assertEqual(response, ["test2", "test1"])
121
122
123# For testing method_decorator, a decorator that assumes a single argument.

Callers

nothing calls this directly

Calls 4

user_passes_testFunction · 0.90
DummyRequestClass · 0.85
DummyUserClass · 0.85
callbackFunction · 0.85

Tested by

no test coverage detected