Skip to content

Commit aa6a727

Browse files
committed
fixed CrawlerProcess when settings are passed as dicts
See scrapy#1156
1 parent 342cb62 commit aa6a727

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

scrapy/crawler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ class CrawlerProcess(CrawlerRunner):
209209
def __init__(self, settings):
210210
super(CrawlerProcess, self).__init__(settings)
211211
install_shutdown_handlers(self._signal_shutdown)
212-
configure_logging(settings)
213-
log_scrapy_info(settings)
212+
configure_logging(self.settings)
213+
log_scrapy_info(self.settings)
214214

215215
def _signal_shutdown(self, signum, _):
216216
install_shutdown_handlers(self._signal_kill)

tests/test_crawler.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import warnings
22
import unittest
33

4-
from scrapy.crawler import Crawler, CrawlerRunner
4+
from scrapy.crawler import Crawler, CrawlerRunner, CrawlerProcess
55
from scrapy.settings import Settings, default_settings
66
from scrapy.spiderloader import SpiderLoader
77
from scrapy.utils.spider import DefaultSpider
@@ -104,3 +104,13 @@ def test_spidermanager_deprecation(self):
104104
self.assertEqual(len(w), 1)
105105
self.assertIn('Please use SPIDER_LOADER_CLASS', str(w[0].message))
106106

107+
108+
class CrawlerProcessTest(unittest.TestCase):
109+
def test_crawler_process_accepts_dict(self):
110+
runner = CrawlerProcess({'foo': 'bar'})
111+
self.assertEqual(runner.settings['foo'], 'bar')
112+
self.assertEqual(
113+
runner.settings['RETRY_ENABLED'],
114+
default_settings.RETRY_ENABLED
115+
)
116+
self.assertIsInstance(runner.settings, Settings)

0 commit comments

Comments
 (0)