summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-05-24 17:55:50 +0200
committerClaude Paroz <claude@2xlibre.net>2013-05-25 12:10:53 +0200
commitf940e564e4623d531eb97a2cf1b116851003f9fd (patch)
tree8667da411b9c87410586eb74e7a796e6f9b404ef /tests
parent6de81d65f443a01961c23139ca5d7653ef012d35 (diff)
Fixed #20099 -- Eased subclassing of BrokenLinkEmailsMiddleware
Thanks Ram Rachum for the report and the initial patch, and Simon Charette for the review.
Diffstat (limited to 'tests')
-rw-r--r--tests/middleware/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py
index 1ff8390f31..265eb97c36 100644
--- a/tests/middleware/tests.py
+++ b/tests/middleware/tests.py
@@ -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'