diff options
| author | Claude Paroz <claude@2xlibre.net> | 2013-05-24 17:55:50 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2013-05-25 12:10:53 +0200 |
| commit | f940e564e4623d531eb97a2cf1b116851003f9fd (patch) | |
| tree | 8667da411b9c87410586eb74e7a796e6f9b404ef /tests | |
| parent | 6de81d65f443a01961c23139ca5d7653ef012d35 (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.py | 19 |
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' |
