mirror of https://github.com/scrapy/scrapy.git
Address feedback
This commit is contained in:
parent
6cf308fbdd
commit
ac5a5b7811
|
|
@ -229,7 +229,7 @@ class ExecutionEngine:
|
|||
return
|
||||
|
||||
while not self.needs_backout():
|
||||
if self._start_scheduled_request() is None:
|
||||
if not self._start_scheduled_request():
|
||||
break
|
||||
|
||||
if self.spider_is_idle() and self._slot.close_if_idle:
|
||||
|
|
@ -250,14 +250,14 @@ class ExecutionEngine:
|
|||
or self.scraper.slot.needs_backout()
|
||||
)
|
||||
|
||||
def _start_scheduled_request(self) -> Deferred[None] | None:
|
||||
def _start_scheduled_request(self) -> bool:
|
||||
assert self._slot is not None # typing
|
||||
assert self.spider is not None # typing
|
||||
|
||||
request = self._slot.scheduler.next_request()
|
||||
if request is None:
|
||||
self.signals.send_catch_log(signals.scheduler_empty)
|
||||
return None
|
||||
return False
|
||||
|
||||
d: Deferred[Response | Request] = self._download(request)
|
||||
d.addBoth(self._handle_downloader_output, request)
|
||||
|
|
@ -290,7 +290,7 @@ class ExecutionEngine:
|
|||
extra={"spider": self.spider},
|
||||
)
|
||||
)
|
||||
return d2
|
||||
return True
|
||||
|
||||
def _handle_downloader_output(
|
||||
self, result: Request | Response | Failure, request: Request
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ from asyncio import sleep
|
|||
|
||||
import pytest
|
||||
from testfixtures import LogCapture
|
||||
from twisted.internet.defer import Deferred
|
||||
from twisted.trial.unittest import TestCase
|
||||
|
||||
from scrapy import Spider, signals
|
||||
|
|
@ -11,20 +10,14 @@ from scrapy.exceptions import ScrapyDeprecationWarning
|
|||
from scrapy.utils.defer import deferred_f_from_coro_f, maybe_deferred_to_future
|
||||
from scrapy.utils.test import get_crawler
|
||||
|
||||
from .utils import twisted_sleep
|
||||
|
||||
SLEEP_SECONDS = 0.1
|
||||
|
||||
ITEM_A = {"id": "a"}
|
||||
ITEM_B = {"id": "b"}
|
||||
|
||||
|
||||
def twisted_sleep(seconds):
|
||||
from twisted.internet import reactor
|
||||
|
||||
d = Deferred()
|
||||
reactor.callLater(seconds, d.callback, None)
|
||||
return d
|
||||
|
||||
|
||||
class MainTestCase(TestCase):
|
||||
async def _test_spider(self, spider, expected_items=None):
|
||||
actual_items = []
|
||||
|
|
|
|||
|
|
@ -8,8 +8,9 @@ from scrapy import Spider, signals
|
|||
from scrapy.exceptions import ScrapyDeprecationWarning
|
||||
from scrapy.utils.defer import deferred_f_from_coro_f, maybe_deferred_to_future
|
||||
from scrapy.utils.test import get_crawler
|
||||
from tests.test_spider_start import SLEEP_SECONDS
|
||||
|
||||
from .test_spider_start import SLEEP_SECONDS, twisted_sleep
|
||||
from .utils import twisted_sleep
|
||||
|
||||
ITEM_A = {"id": "a"}
|
||||
ITEM_B = {"id": "b"}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
from twisted.internet.defer import Deferred
|
||||
|
||||
|
||||
def twisted_sleep(seconds):
|
||||
from twisted.internet import reactor
|
||||
|
||||
d = Deferred()
|
||||
reactor.callLater(seconds, d.callback, None)
|
||||
return d
|
||||
Loading…
Reference in New Issue