| 435 | |
| 436 | def test_custom_request_checker(self): |
| 437 | class SubclassedMiddleware(BrokenLinkEmailsMiddleware): |
| 438 | ignored_user_agent_patterns = ( |
| 439 | re.compile(r"Spider.*"), |
| 440 | re.compile(r"Robot.*"), |
| 441 | ) |
| 442 | |
| 443 | def is_ignorable_request(self, request, uri, domain, referer): |
| 444 | """Check user-agent in addition to normal checks.""" |
| 445 | if super().is_ignorable_request(request, uri, domain, referer): |
| 446 | return True |
| 447 | user_agent = request.META["HTTP_USER_AGENT"] |
| 448 | return any( |
| 449 | pattern.search(user_agent) |
| 450 | for pattern in self.ignored_user_agent_patterns |
| 451 | ) |
| 452 | |
| 453 | self.req.META["HTTP_REFERER"] = "/another/url/" |
| 454 | self.req.META["HTTP_USER_AGENT"] = "Spider machine 3.4" |