From 5badd0787ea871bb3a88bbd3f8d65110f8e3a785 Mon Sep 17 00:00:00 2001 From: Andrey Rakhmatullin Date: Sat, 11 Jul 2026 22:27:33 +0500 Subject: [PATCH] Remove verifyClass() from get_spider_loader(). --- scrapy/spiderloader.py | 2 -- tests/test_crawler.py | 24 ------------------------ 2 files changed, 26 deletions(-) diff --git a/scrapy/spiderloader.py b/scrapy/spiderloader.py index 8c980fd46..67c2b5525 100644 --- a/scrapy/spiderloader.py +++ b/scrapy/spiderloader.py @@ -6,7 +6,6 @@ from collections import defaultdict from typing import TYPE_CHECKING, Protocol, cast from zope.interface import implementer -from zope.interface.verify import verifyClass from scrapy.interfaces import ISpiderLoader from scrapy.utils.misc import load_object, walk_modules_iter @@ -26,7 +25,6 @@ def get_spider_loader(settings: BaseSettings) -> SpiderLoaderProtocol: """Get SpiderLoader instance from settings""" cls_path = settings.get("SPIDER_LOADER_CLASS") loader_cls = load_object(cls_path) - verifyClass(ISpiderLoader, loader_cls) return cast("SpiderLoaderProtocol", loader_cls.from_settings(settings.frozencopy())) diff --git a/tests/test_crawler.py b/tests/test_crawler.py index 6a1eea027..5106c890e 100644 --- a/tests/test_crawler.py +++ b/tests/test_crawler.py @@ -10,7 +10,6 @@ from typing import TYPE_CHECKING, Any, ClassVar from unittest.mock import MagicMock import pytest -from zope.interface.exceptions import MultipleInvalid import scrapy from scrapy import Spider @@ -586,21 +585,7 @@ class TestCrawlerLogging: assert "debug message" in logged -class SpiderLoaderWithWrongInterface: - def unneeded_method(self) -> None: - pass - - class TestCrawlerRunner(TestBaseCrawler): - def test_spider_manager_verify_interface(self) -> None: - settings = Settings( - { - "SPIDER_LOADER_CLASS": SpiderLoaderWithWrongInterface, - } - ) - with pytest.raises(MultipleInvalid): - CrawlerRunner(settings) - def test_crawler_runner_accepts_dict(self) -> None: runner = CrawlerRunner({"foo": "bar"}) assert runner.settings["foo"] == "bar" @@ -612,15 +597,6 @@ class TestCrawlerRunner(TestBaseCrawler): class TestAsyncCrawlerRunner(TestBaseCrawler): - def test_spider_manager_verify_interface(self) -> None: - settings = Settings( - { - "SPIDER_LOADER_CLASS": SpiderLoaderWithWrongInterface, - } - ) - with pytest.raises(MultipleInvalid): - AsyncCrawlerRunner(settings) - def test_crawler_runner_accepts_dict(self) -> None: runner = AsyncCrawlerRunner({"foo": "bar"}) assert runner.settings["foo"] == "bar"