2010-09-07 13:01:40 -03:00
|
|
|
import unittest
|
|
|
|
|
2015-04-20 21:23:05 -03:00
|
|
|
from scrapy.downloadermiddlewares.downloadtimeout import DownloadTimeoutMiddleware
|
2015-05-09 04:20:09 -03:00
|
|
|
from scrapy.spiders import Spider
|
2010-09-07 13:01:40 -03:00
|
|
|
from scrapy.http import Request
|
2010-09-22 16:09:13 -03:00
|
|
|
from scrapy.utils.test import get_crawler
|
2010-09-07 13:01:40 -03:00
|
|
|
|
|
|
|
|
|
|
|
class DownloadTimeoutMiddlewareTest(unittest.TestCase):
|
|
|
|
|
2014-11-21 01:09:32 -02:00
|
|
|
def get_request_spider_mw(self, settings=None):
|
|
|
|
crawler = get_crawler(Spider, settings)
|
2014-07-31 04:12:12 -03:00
|
|
|
spider = crawler._create_spider('foo')
|
2010-09-22 16:09:13 -03:00
|
|
|
request = Request('http://scrapytest.org/')
|
2012-08-21 17:27:45 -03:00
|
|
|
return request, spider, DownloadTimeoutMiddleware.from_crawler(crawler)
|
2010-09-07 13:01:40 -03:00
|
|
|
|
2010-09-22 16:09:13 -03:00
|
|
|
def test_default_download_timeout(self):
|
|
|
|
req, spider, mw = self.get_request_spider_mw()
|
2013-10-08 19:03:26 -02:00
|
|
|
mw.spider_opened(spider)
|
2010-09-22 16:09:13 -03:00
|
|
|
assert mw.process_request(req, spider) is None
|
|
|
|
self.assertEquals(req.meta.get('download_timeout'), 180)
|
2010-09-07 13:01:40 -03:00
|
|
|
|
2014-11-21 01:09:32 -02:00
|
|
|
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)
|
|
|
|
|
2010-09-07 13:01:40 -03:00
|
|
|
def test_spider_has_download_timeout(self):
|
2010-09-22 16:09:13 -03:00
|
|
|
req, spider, mw = self.get_request_spider_mw()
|
2012-08-21 17:27:45 -03:00
|
|
|
spider.download_timeout = 2
|
2013-10-08 19:03:26 -02:00
|
|
|
mw.spider_opened(spider)
|
2010-09-22 16:09:13 -03:00
|
|
|
assert mw.process_request(req, spider) is None
|
|
|
|
self.assertEquals(req.meta.get('download_timeout'), 2)
|
2010-09-07 13:01:40 -03:00
|
|
|
|
|
|
|
def test_request_has_download_timeout(self):
|
2010-09-22 16:09:13 -03:00
|
|
|
req, spider, mw = self.get_request_spider_mw()
|
2012-08-21 17:27:45 -03:00
|
|
|
spider.download_timeout = 2
|
2013-10-08 19:03:26 -02:00
|
|
|
mw.spider_opened(spider)
|
2010-09-22 16:09:13 -03:00
|
|
|
req.meta['download_timeout'] = 1
|
|
|
|
assert mw.process_request(req, spider) is None
|
|
|
|
self.assertEquals(req.meta.get('download_timeout'), 1)
|