curl_cffi не проходит QRATOR proof-of-work Авито в принципе (замер 21.08: ~6% обогащений против ~74% на браузере). Шаг 3 задачи был сделан только environment'ом сервиса scraper, дефолт в config.py остался True. Добор при этом исполняет и tradein-backend — ручка админки scrape_avito_detail_backfill вызывает run_avito_detail_backfill в своём процессе, и там printenv даёт true. Ручной прогон через админку шёл curl'ом. Дефолт avito_detail_backfill_use_curl -> False. Комментарий в задаче «true только у tradein-backend, который добор не запускает» был неверен — исправлен, как и два упоминания use_curl=True «прод-дефолтом». Тест по значению: Settings без env и без .env даёт False; контроль — env по-прежнему переключает на curl. Фальсификация: default=True -> «AssertionError: assert True is False». На проде хостовый backend/.env.runtime:37 задаёт true явно, поэтому для tradein-backend нужен ещё environment-оверрайд — он в коммите #3182. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
1.3 KiB
Python
28 lines
1.3 KiB
Python
"""#3045: дефолт avito_detail_backfill_use_curl — браузер, а не curl.
|
||
|
||
curl_cffi не решает QRATOR PoW Авито (замер 21.08: ~6% обогащений против ~74% на
|
||
браузере). Пока дефолт был True, браузер включал только environment сервиса scraper,
|
||
а tradein-backend (ручка админки scrape_avito_detail_backfill исполняет добор в своём
|
||
процессе) шёл curl'ом. Проверка по значению поля Settings без env и без .env-файла.
|
||
"""
|
||
|
||
import os
|
||
|
||
os.environ.setdefault("DATABASE_URL", "postgresql+psycopg://test:test@localhost:5432/test")
|
||
|
||
import pytest
|
||
|
||
from app.core.config import Settings
|
||
|
||
|
||
def test_detail_backfill_defaults_to_browser(monkeypatch: pytest.MonkeyPatch) -> None:
|
||
monkeypatch.delenv("AVITO_DETAIL_BACKFILL_USE_CURL", raising=False)
|
||
|
||
assert Settings(_env_file=None).avito_detail_backfill_use_curl is False
|
||
|
||
|
||
def test_env_still_switches_to_curl(monkeypatch: pytest.MonkeyPatch) -> None:
|
||
"""Контроль: переменная окружения по-прежнему переключает режим — поле живое."""
|
||
monkeypatch.setenv("AVITO_DETAIL_BACKFILL_USE_CURL", "true")
|
||
|
||
assert Settings(_env_file=None).avito_detail_backfill_use_curl is True
|