Complete coverage for addons.py (#7612)

This commit is contained in:
Adrian 2026-06-12 16:15:36 +02:00 committed by GitHub
parent 983e6c1182
commit af30cfea12
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 31 additions and 0 deletions

View File

@ -71,6 +71,37 @@ class TestAddonManager:
manager = crawler.addons
assert not manager.addons
def test_notconfigured_with_args(self):
class NotConfiguredAddon:
def update_settings(self, settings):
raise NotConfigured("addon disabled reason")
settings_dict = {
"ADDONS": {NotConfiguredAddon: 0},
}
with patch("scrapy.addons.logger") as logger_mock:
crawler = get_crawler(settings_dict=settings_dict)
assert not crawler.addons.addons
logger_mock.warning.assert_called_once_with(
"Disabled %(clspath)s: %(eargs)s",
{"clspath": NotConfiguredAddon, "eargs": "addon disabled reason"},
extra={"crawler": crawler},
)
def test_no_update_settings(self):
class PreCrawlerOnlyAddon:
@classmethod
def update_pre_crawler_settings(cls, settings):
settings.set("PRE_CRAWLER_KEY", "value", priority="addon")
settings_dict = {
"ADDONS": {PreCrawlerOnlyAddon: 0},
}
crawler = get_crawler(settings_dict=settings_dict)
manager = crawler.addons
assert len(manager.addons) == 1
assert isinstance(manager.addons[0], PreCrawlerOnlyAddon)
def test_load_settings_order(self):
# Get three addons with different settings
addonlist = []