Address feedback

This commit is contained in:
Adrián Chaves 2025-04-07 12:37:31 +02:00
parent 6cf308fbdd
commit ac5a5b7811
4 changed files with 17 additions and 14 deletions

View File

@ -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

View File

@ -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 = []

View File

@ -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"}

View File

@ -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