mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Fixed #20099 -- Eased subclassing of BrokenLinkEmailsMiddleware
Thanks Ram Rachum for the report and the initial patch, and Simon Charette for the review.
This commit is contained in:
parent
6de81d65f4
commit
f940e564e4
4 changed files with 40 additions and 9 deletions
|
@ -326,6 +326,25 @@ class BrokenLinkEmailsMiddlewareTest(TestCase):
|
|||
BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
|
||||
def test_custom_request_checker(self):
|
||||
class SubclassedMiddleware(BrokenLinkEmailsMiddleware):
|
||||
ignored_user_agent_patterns = (re.compile(r'Spider.*'),
|
||||
re.compile(r'Robot.*'))
|
||||
def is_ignorable_request(self, request, uri, domain, referer):
|
||||
'''Check user-agent in addition to normal checks.'''
|
||||
if super(SubclassedMiddleware, self).is_ignorable_request(request, uri, domain, referer):
|
||||
return True
|
||||
user_agent = request.META['HTTP_USER_AGENT']
|
||||
return any(pattern.search(user_agent) for pattern in
|
||||
self.ignored_user_agent_patterns)
|
||||
|
||||
self.req.META['HTTP_REFERER'] = '/another/url/'
|
||||
self.req.META['HTTP_USER_AGENT'] = 'Spider machine 3.4'
|
||||
SubclassedMiddleware().process_response(self.req, self.resp)
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
self.req.META['HTTP_USER_AGENT'] = 'My user agent'
|
||||
SubclassedMiddleware().process_response(self.req, self.resp)
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
|
||||
class ConditionalGetMiddlewareTest(TestCase):
|
||||
urls = 'middleware.cond_get_urls'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue