mirror of
https://github.com/quantum5/django-csp-advanced.git
synced 2025-04-24 11:22:00 -04:00
Make callable_csp_dict handle pass request and response.
This commit is contained in:
parent
46338c5bfc
commit
e4ac7c7509
|
@ -77,20 +77,34 @@ class CSPCompileTest(SimpleTestCase):
|
|||
|
||||
|
||||
class CallableCSPDictTest(SimpleTestCase):
|
||||
request = object()
|
||||
response = object()
|
||||
|
||||
def make_request_taker(self, output):
|
||||
def func(request, response):
|
||||
self.assertEqual(request, self.request)
|
||||
self.assertEqual(response, self.response)
|
||||
return output
|
||||
return func
|
||||
|
||||
def test_callable(self):
|
||||
self.assertEqual(callable_csp_dict(lambda: {'key': 'value'}), {'key': 'value'})
|
||||
self.assertEqual(callable_csp_dict(
|
||||
self.make_request_taker({'key': 'value'}), self.request, self.response
|
||||
), {'key': 'value'})
|
||||
|
||||
def test_normal_dict(self):
|
||||
self.assertEqual(callable_csp_dict({'key': 'value'}), {'key': 'value'})
|
||||
self.assertEqual(callable_csp_dict({'key': 'value'}, None, None), {'key': 'value'})
|
||||
|
||||
def test_callable_entry(self):
|
||||
self.assertEqual(callable_csp_dict({'key': lambda: 'value'}), {'key': 'value'})
|
||||
self.assertEqual(callable_csp_dict(
|
||||
{'key': self.make_request_taker('value')}, self.request, self.response
|
||||
), {'key': 'value'})
|
||||
|
||||
def test_mixed_entry(self):
|
||||
self.assertEqual(callable_csp_dict({
|
||||
'key': lambda: 'value',
|
||||
'key': self.make_request_taker('value'),
|
||||
'name': 'mixed',
|
||||
}), {
|
||||
}, self.request, self.response), {
|
||||
'key': 'value',
|
||||
'name': 'mixed'
|
||||
})
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
def callable_csp_dict(data):
|
||||
def callable_csp_dict(data, request, response):
|
||||
if callable(data):
|
||||
return data()
|
||||
return data(request, response)
|
||||
result = {}
|
||||
for key, value in data.iteritems():
|
||||
if callable(value):
|
||||
result[key] = value()
|
||||
result[key] = value(request, response)
|
||||
else:
|
||||
result[key] = value
|
||||
return result
|
||||
|
|
Loading…
Reference in a new issue