From c52c5527afd8628e346166069c6cab8576a74092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Chaves?= Date: Tue, 18 Feb 2025 00:08:42 +0100 Subject: [PATCH] Update tests --- tests/__init__.py | 7 +++++-- tests/test_addon.py | 6 ++++-- tests/test_handler.py | 8 +++++++- tests/test_referer.py | 4 ++++ tests/test_sessions.py | 5 +++-- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index c8c57748..3a216f8e 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,5 @@ from contextlib import asynccontextmanager, contextmanager +from copy import deepcopy from os import environ from typing import Any, Dict, Optional @@ -68,11 +69,13 @@ class DummySpider(Spider): async def get_crawler( - settings=None, spider_cls=DummySpider, setup_engine=True, use_addon=False + settings=None, spider_cls=DummySpider, setup_engine=True, use_addon=False, poet=True ): settings = settings or {} - base_settings: SETTINGS_T = SETTINGS if not use_addon else SETTINGS_ADDON + base_settings: SETTINGS_T = deepcopy(SETTINGS if not use_addon else SETTINGS_ADDON) final_settings = {**base_settings, **settings} + if poet and _POET_ADDON_SUPPORT: + final_settings.setdefault("ADDONS", {})["scrapy_poet.Addon"] = 300 crawler = _get_crawler(settings_dict=final_settings, spidercls=spider_cls) if setup_engine: await setup_crawler_engine(crawler) diff --git a/tests/test_addon.py b/tests/test_addon.py index 96def6c4..dcbffa97 100644 --- a/tests/test_addon.py +++ b/tests/test_addon.py @@ -83,8 +83,10 @@ async def test_addon_fallback_explicit(): @ensureDeferred async def test_addon_matching_settings(): - crawler = await get_crawler_zyte_api({"ZYTE_API_TRANSPARENT_MODE": True}) - addon_crawler = await get_crawler_zyte_api(use_addon=True) + crawler = await get_crawler_zyte_api( + {"ZYTE_API_TRANSPARENT_MODE": True}, poet=False + ) + addon_crawler = await get_crawler_zyte_api(use_addon=True, poet=False) assert serialize_settings(crawler.settings) == serialize_settings( addon_crawler.settings ) diff --git a/tests/test_handler.py b/tests/test_handler.py index eb3d2acf..ec691690 100644 --- a/tests/test_handler.py +++ b/tests/test_handler.py @@ -22,7 +22,11 @@ _body_max_size_exceeded, ) from scrapy_zyte_api.responses import ZyteAPITextResponse -from scrapy_zyte_api.utils import _AUTOTHROTTLE_DONT_ADJUST_DELAY_SUPPORT, USER_AGENT +from scrapy_zyte_api.utils import ( + _AUTOTHROTTLE_DONT_ADJUST_DELAY_SUPPORT, + _POET_ADDON_SUPPORT, + USER_AGENT, +) from . import DEFAULT_CLIENT_CONCURRENCY, SETTINGS, SETTINGS_T, UNSET from . import get_crawler as get_crawler_zyte_api @@ -622,6 +626,8 @@ def parse(self, response): "ZYTE_API_TRANSPARENT_MODE": True, **SETTINGS, } + if _POET_ADDON_SUPPORT: + settings["ADDONS"] = {"scrapy_poet.Addon": 300} with MockServer() as server: settings["ZYTE_API_URL"] = server.urljoin("/") diff --git a/tests/test_referer.py b/tests/test_referer.py index 6ced8158..cc8a0a50 100644 --- a/tests/test_referer.py +++ b/tests/test_referer.py @@ -5,6 +5,8 @@ from scrapy import Spider, signals from scrapy.utils.test import get_crawler +from scrapy_zyte_api.utils import _POET_ADDON_SUPPORT + try: import scrapy.addons # noqa: F401 except ImportError: @@ -266,6 +268,8 @@ async def test_main(settings, meta, headers, expected, mockserver): items = [] settings = deepcopy(settings) settings["ZYTE_API_URL"] = mockserver.urljoin("/") + if _POET_ADDON_SUPPORT: + settings.setdefault("ADDONS", {})["scrapy_poet.Addon"] = 300 start_url = mockserver.urljoin("/a") follow_up_url = mockserver.urljoin("/b") diff --git a/tests/test_sessions.py b/tests/test_sessions.py index 8509ee56..adcf350d 100644 --- a/tests/test_sessions.py +++ b/tests/test_sessions.py @@ -1260,10 +1260,11 @@ async def test_addon(manual_settings, addon_settings): "ZYTE_API_TRANSPARENT_MODE": True, "ZYTE_API_SESSION_ENABLED": True, **manual_settings, - } + }, + poet=False, ) addon_crawler = await get_crawler( - {"ZYTE_API_SESSION_ENABLED": True, **addon_settings}, use_addon=True + {"ZYTE_API_SESSION_ENABLED": True, **addon_settings}, use_addon=True, poet=False ) assert serialize_settings(crawler.settings) == serialize_settings( addon_crawler.settings