| 68 | assert lines == ["Dropped: \u2018", "{}"] |
| 69 | |
| 70 | def test_dropitem_default_log_level(self): |
| 71 | item = {} |
| 72 | exception = DropItem("Test drop") |
| 73 | response = Response("http://www.example.com") |
| 74 | spider = Spider("foo") |
| 75 | spider.crawler = get_crawler(Spider) |
| 76 | |
| 77 | logkws = self.formatter.dropped(item, exception, response, spider) |
| 78 | assert logkws["level"] == logging.WARNING |
| 79 | |
| 80 | spider.crawler.settings.frozen = False |
| 81 | spider.crawler.settings["DEFAULT_DROPITEM_LOG_LEVEL"] = logging.INFO |
| 82 | spider.crawler.settings.frozen = True |
| 83 | logkws = self.formatter.dropped(item, exception, response, spider) |
| 84 | assert logkws["level"] == logging.INFO |
| 85 | |
| 86 | spider.crawler.settings.frozen = False |
| 87 | spider.crawler.settings["DEFAULT_DROPITEM_LOG_LEVEL"] = "INFO" |
| 88 | spider.crawler.settings.frozen = True |
| 89 | logkws = self.formatter.dropped(item, exception, response, spider) |
| 90 | assert logkws["level"] == logging.INFO |
| 91 | |
| 92 | spider.crawler.settings.frozen = False |
| 93 | spider.crawler.settings["DEFAULT_DROPITEM_LOG_LEVEL"] = 10 |
| 94 | spider.crawler.settings.frozen = True |
| 95 | logkws = self.formatter.dropped(item, exception, response, spider) |
| 96 | assert logkws["level"] == logging.DEBUG |
| 97 | |
| 98 | spider.crawler.settings.frozen = False |
| 99 | spider.crawler.settings["DEFAULT_DROPITEM_LOG_LEVEL"] = 0 |
| 100 | spider.crawler.settings.frozen = True |
| 101 | logkws = self.formatter.dropped(item, exception, response, spider) |
| 102 | assert logkws["level"] == logging.NOTSET |
| 103 | |
| 104 | unsupported_value = object() |
| 105 | spider.crawler.settings.frozen = False |
| 106 | spider.crawler.settings["DEFAULT_DROPITEM_LOG_LEVEL"] = unsupported_value |
| 107 | spider.crawler.settings.frozen = True |
| 108 | logkws = self.formatter.dropped(item, exception, response, spider) |
| 109 | assert logkws["level"] == unsupported_value |
| 110 | |
| 111 | with pytest.raises(TypeError): |
| 112 | logging.log(logkws["level"], "message") # noqa: LOG015 |
| 113 | |
| 114 | def test_dropitem_custom_log_level(self): |
| 115 | item = {} |