Fixed #27688 -- Made messages' add_message() request check use ducktyping.

This commit is contained in:
Raffaele Salmaso 2017-01-10 00:03:10 +01:00 committed by Tim Graham
parent 7dc8d9238a
commit ed8c0c941d
2 changed files with 36 additions and 11 deletions

View file

@ -42,3 +42,24 @@ class ApiTests(SimpleTestCase):
def test_middleware_missing_silently(self):
messages.add_message(self.request, messages.DEBUG, 'some message', fail_silently=True)
self.assertEqual(self.storage.store, [])
class CustomRequest(object):
def __init__(self, request):
self._request = request
def __getattribute__(self, attr):
try:
return super(CustomRequest, self).__getattribute__(attr)
except AttributeError:
return getattr(self._request, attr)
class CustomRequestApiTests(ApiTests):
"""
add_message() should use ducktyping to allow request wrappers such as the
one in Django REST framework.
"""
def setUp(self):
super(CustomRequestApiTests, self).setUp()
self.request = CustomRequest(self.request)