From 1305cfb2404b7e7f9ac9fa5339eb00c1fdd2cf76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Chaves?= Date: Sat, 15 Mar 2025 03:36:56 +0100 Subject: [PATCH] Update test expectations for older versions of Twisted --- tests/test_spider_yield_seeds.py | 14 ++++++++++++-- tests/test_spidermiddleware_process_seeds.py | 16 +++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/tests/test_spider_yield_seeds.py b/tests/test_spider_yield_seeds.py index df891ff21..3212144de 100644 --- a/tests/test_spider_yield_seeds.py +++ b/tests/test_spider_yield_seeds.py @@ -2,7 +2,9 @@ from asyncio import sleep import pytest from testfixtures import LogCapture +from twisted import version as TWISTED_VERSION from twisted.internet.defer import Deferred +from twisted.python.versions import Version from twisted.trial.unittest import TestCase from scrapy import Spider, signals @@ -23,6 +25,8 @@ ASYNC_GEN_ERROR_MINIMUM_SECONDS = ExecutionEngine._SLOT_HEARTBEAT_INTERVAL + 0.0 ITEM_A = {"id": "a"} ITEM_B = {"id": "b"} +TWISTED_KEEPS_TRACEBACKS = TWISTED_VERSION >= Version("twisted", 24, 10, 0) + def twisted_sleep(seconds): from twisted.internet import reactor @@ -208,7 +212,10 @@ class MainTestCase(TestCase): with LogCapture() as log: await self._test_yield_seeds(yield_seeds, []) - assert "in yield_seeds\n raise RuntimeError" in str(log), log + if TWISTED_KEEPS_TRACEBACKS: + assert "in yield_seeds\n raise RuntimeError" in str(log), log + else: + assert "in _process_next_seed\n seed =" in str(log), log @deferred_f_from_coro_f async def test_exception_after_yield(self): @@ -219,7 +226,10 @@ class MainTestCase(TestCase): with LogCapture() as log: await self._test_yield_seeds(yield_seeds, [ITEM_A]) - assert "in yield_seeds\n raise RuntimeError" in str(log), log + if TWISTED_KEEPS_TRACEBACKS: + assert "in yield_seeds\n raise RuntimeError" in str(log), log + else: + assert "in _process_next_seed\n seed =" in str(log), log @deferred_f_from_coro_f async def test_start_url(self): diff --git a/tests/test_spidermiddleware_process_seeds.py b/tests/test_spidermiddleware_process_seeds.py index 10dd560fa..f97dfce49 100644 --- a/tests/test_spidermiddleware_process_seeds.py +++ b/tests/test_spidermiddleware_process_seeds.py @@ -9,7 +9,11 @@ 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 .test_spider_yield_seeds import ASYNC_GEN_ERROR_MINIMUM_SECONDS, twisted_sleep +from .test_spider_yield_seeds import ( + ASYNC_GEN_ERROR_MINIMUM_SECONDS, + TWISTED_KEEPS_TRACEBACKS, + twisted_sleep, +) ITEM_A = {"id": "a"} ITEM_B = {"id": "b"} @@ -280,7 +284,10 @@ class MainTestCase(TestCase): with LogCapture() as log: await self._test_process_seeds(process_seeds, []) - assert "in process_seeds\n raise RuntimeError" in str(log), log + if TWISTED_KEEPS_TRACEBACKS: + assert "in process_seeds\n raise RuntimeError" in str(log), log + else: + assert "in _process_next_seed\n seed =" in str(log), log @deferred_f_from_coro_f async def test_exception_after_yield(self): @@ -291,4 +298,7 @@ class MainTestCase(TestCase): with LogCapture() as log: await self._test_process_seeds(process_seeds, [ITEM_A]) - assert "in process_seeds\n raise RuntimeError" in str(log), log + if TWISTED_KEEPS_TRACEBACKS: + assert "in process_seeds\n raise RuntimeError" in str(log), log + else: + assert "in _process_next_seed\n seed =" in str(log), log