mirror of https://github.com/scrapy/scrapy.git
Use caplog in compression warning test
Signed-off-by: Mridankan Mandal <xerontitan90@gmail.com>
This commit is contained in:
parent
2fc74b8c9d
commit
0dfad68136
|
|
@ -538,23 +538,9 @@ class TestHttpCompression:
|
|||
mw.open_spider(spider)
|
||||
|
||||
response = self._getresponse(f"bomb-{compression_id}") # 11_511_612 B
|
||||
with (
|
||||
LogCapture(
|
||||
"scrapy.downloadermiddlewares.httpcompression",
|
||||
propagate=False,
|
||||
level=WARNING,
|
||||
) as log,
|
||||
pytest.raises(IgnoreRequest) as exc_info,
|
||||
):
|
||||
with pytest.raises(IgnoreRequest) as exc_info:
|
||||
mw.process_response(response.request, response)
|
||||
assert exc_info.value.__cause__.decompressed_size < 1_100_000
|
||||
log.check(
|
||||
(
|
||||
"scrapy.downloadermiddlewares.httpcompression",
|
||||
"WARNING",
|
||||
str(exc_info.value),
|
||||
),
|
||||
)
|
||||
|
||||
def test_compression_bomb_setting_br(self):
|
||||
_skip_if_no_br()
|
||||
|
|
@ -572,6 +558,32 @@ class TestHttpCompression:
|
|||
|
||||
self._test_compression_bomb_setting("zstd")
|
||||
|
||||
def test_compression_bomb_setting_logs_warning(
|
||||
self, caplog: pytest.LogCaptureFixture
|
||||
):
|
||||
settings = {"DOWNLOAD_MAXSIZE": 1_000_000}
|
||||
crawler = get_crawler(Spider, settings_dict=settings)
|
||||
spider = crawler._create_spider("scrapytest.org")
|
||||
mw = HttpCompressionMiddleware.from_crawler(crawler)
|
||||
mw.open_spider(spider)
|
||||
|
||||
response = self._getresponse("bomb-gzip") # 11_511_612 B
|
||||
with (
|
||||
caplog.at_level(
|
||||
WARNING, logger="scrapy.downloadermiddlewares.httpcompression"
|
||||
),
|
||||
pytest.raises(IgnoreRequest) as exc_info,
|
||||
):
|
||||
mw.process_response(response.request, response)
|
||||
assert exc_info.value.__cause__.decompressed_size < 1_100_000
|
||||
assert caplog.record_tuples == [
|
||||
(
|
||||
"scrapy.downloadermiddlewares.httpcompression",
|
||||
WARNING,
|
||||
str(exc_info.value),
|
||||
)
|
||||
]
|
||||
|
||||
def _test_compression_bomb_spider_attr(self, compression_id):
|
||||
class DownloadMaxSizeSpider(Spider):
|
||||
download_maxsize = 1_000_000
|
||||
|
|
|
|||
Loading…
Reference in New Issue