mirror of https://github.com/scrapy/scrapy.git
Force to read DOWNLOAD_TIMEOUT as int (for example to pass using
environment variable)
This commit is contained in:
parent
ed84231b60
commit
7910fa0172
|
|
@ -14,7 +14,7 @@ class DownloadTimeoutMiddleware(object):
|
|||
|
||||
@classmethod
|
||||
def from_crawler(cls, crawler):
|
||||
o = cls(crawler.settings['DOWNLOAD_TIMEOUT'])
|
||||
o = cls(crawler.settings.getfloat('DOWNLOAD_TIMEOUT'))
|
||||
crawler.signals.connect(o.spider_opened, signal=signals.spider_opened)
|
||||
return o
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ from scrapy.utils.test import get_crawler
|
|||
|
||||
class DownloadTimeoutMiddlewareTest(unittest.TestCase):
|
||||
|
||||
def get_request_spider_mw(self):
|
||||
crawler = get_crawler(Spider)
|
||||
def get_request_spider_mw(self, settings=None):
|
||||
crawler = get_crawler(Spider, settings)
|
||||
spider = crawler._create_spider('foo')
|
||||
request = Request('http://scrapytest.org/')
|
||||
return request, spider, DownloadTimeoutMiddleware.from_crawler(crawler)
|
||||
|
|
@ -20,6 +20,12 @@ class DownloadTimeoutMiddlewareTest(unittest.TestCase):
|
|||
assert mw.process_request(req, spider) is None
|
||||
self.assertEquals(req.meta.get('download_timeout'), 180)
|
||||
|
||||
def test_string_download_timeout(self):
|
||||
req, spider, mw = self.get_request_spider_mw({'DOWNLOAD_TIMEOUT': '20.1'})
|
||||
mw.spider_opened(spider)
|
||||
assert mw.process_request(req, spider) is None
|
||||
self.assertEquals(req.meta.get('download_timeout'), 20.1)
|
||||
|
||||
def test_spider_has_download_timeout(self):
|
||||
req, spider, mw = self.get_request_spider_mw()
|
||||
spider.download_timeout = 2
|
||||
|
|
|
|||
Loading…
Reference in New Issue