(self)
| 185 | |
| 186 | @inline_callbacks_test |
| 187 | def test_enable_addon_in_spider(self): |
| 188 | class MySpider(Spider): |
| 189 | name = "myspider" |
| 190 | |
| 191 | @classmethod |
| 192 | def from_crawler(cls, crawler, *args, **kwargs): |
| 193 | spider = super().from_crawler(crawler, *args, **kwargs) |
| 194 | addon_config = {"KEY": "addon"} |
| 195 | addon_cls = get_addon_cls(addon_config) |
| 196 | spider.settings.set("ADDONS", {addon_cls: 1}, priority="spider") |
| 197 | return spider |
| 198 | |
| 199 | settings = Settings() |
| 200 | settings.setdict(get_reactor_settings()) |
| 201 | settings.set("KEY", "default", priority="default") |
| 202 | runner_cls = ( |
| 203 | CrawlerRunner |
| 204 | if settings.getbool("TWISTED_REACTOR_ENABLED", True) |
| 205 | else AsyncCrawlerRunner |
| 206 | ) |
| 207 | runner = runner_cls(settings) |
| 208 | crawler = runner.create_crawler(MySpider) |
| 209 | assert crawler.settings.get("KEY") == "default" |
| 210 | yield crawler.crawl() |
| 211 | assert crawler.settings.get("KEY") == "addon" |
nothing calls this directly
no test coverage detected