File tree Expand file tree Collapse file tree 3 files changed +21
-3
lines changed
Expand file tree Collapse file tree 3 files changed +21
-3
lines changed Original file line number Diff line number Diff line change 2626START_URLS_KEY = '%(name)s:start_urls'
2727START_URLS_AS_SET = False
2828START_URLS_AS_ZSET = False
29+ MAX_IDLE_TIME = 0
Original file line number Diff line number Diff line change @@ -86,7 +86,16 @@ def setup_redis(self, crawler=None):
8686 self .fetch_data = self .pop_list_queue
8787 self .count_size = self .server .llen
8888
89- self .max_idle_time = settings .getint ("MAX_IDLE_TIME_BEFORE_CLOSE" )
89+ if self .max_idle_time is None :
90+ self .max_idle_time = settings .getint (
91+ "MAX_IDLE_TIME_BEFORE_CLOSE" ,
92+ defaults .MAX_IDLE_TIME
93+ )
94+
95+ try :
96+ self .max_idle_time = int (self .max_idle_time )
97+ except (TypeError , ValueError ):
98+ raise ValueError ("max_idle_time must be an integer" )
9099
91100 # The idle signal is called when the spider has no requests left,
92101 # that's when we will schedule new requests from redis queue
Original file line number Diff line number Diff line change @@ -56,6 +56,13 @@ def test_invalid_batch_size(self):
5656 self .myspider .setup_redis ()
5757 assert "redis_batch_size" in str (excinfo .value )
5858
59+ def test_invalid_idle_time (self ):
60+ self .myspider .max_idle_time = 'x'
61+ self .myspider .crawler = get_crawler ()
62+ with pytest .raises (ValueError ) as excinfo :
63+ self .myspider .setup_redis ()
64+ assert "max_idle_time" in str (excinfo .value )
65+
5966 @mock .patch ('scrapy_redis.spiders.connection' )
6067 def test_via_from_crawler (self , connection ):
6168 server = connection .from_settings .return_value = mock .Mock ()
@@ -82,12 +89,13 @@ def test_from_crawler_with_spider_arguments(spider_cls):
8289 crawler , 'foo' ,
8390 redis_key = 'key:%(name)s' ,
8491 redis_batch_size = '2000' ,
92+ max_idle_time = '100' ,
8593 )
8694 assert spider .name == 'foo'
8795 assert spider .redis_key == 'key:foo'
8896 assert spider .redis_batch_size == 2000
89-
90-
97+ assert spider . max_idle_time == 100
98+
9199class MockRequest (mock .Mock ):
92100 def __init__ (self , url , ** kwargs ):
93101 super (MockRequest , self ).__init__ ()
You can’t perform that action at this time.
0 commit comments