gendesign/tradein-mvp/backend/tests/fixtures/avito_imv_geo_position.json
Light1YT 81bf7e6def fix(tradein-imv): harden Avito IMV anti-bot path + offline contract tests (#565)
Add warm-up GET /evaluation/realty + production browser header set (Sec-Fetch,
X-Requested-With, 25s timeout) mirroring avito.py, чтобы защитить 3-step IMV flow
от server-IP анти-бот 403. Refactor step B/C парсинга в pure helpers
(_parse_geo_position/_parse_price/_parse_placement_history/_parse_suggestions)
+ fixture-driven offline тесты из живых JSON-captures.

Честный диагноз: контракт (geoFieldsHash, price-блок, categoryId=24) НЕ менялся —
проверено живым capture'ом с этой машины (A→B→C, recommended 7.39M). Реальная
причина #565 — скорее анти-бот по PROD-IP, не код → если #565 останется после
deploy, настоящий фикс = ротация egress IP воркера (devops, отдельно).

code-reviewer:  APPROVE no critical — warm-up non-fatal, injected-session path
unchanged, refactor preserves shapes, graceful-None сохранён, fixtures без PII.
Tests: 12 new (27 total). Ruff clean.

Closes #565
2026-05-28 16:29:05 +05:00

13 lines
No EOL
727 B
JSON

{
"address": "Свердловская область, Екатеринбург, улица Малышева, 125",
"addressId": 22319477,
"closeSuggest": true,
"districtId": 789,
"errorText": "",
"geoFieldsHash": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsYXRpdHVkZSI6NTYuODQwODcyLCJsb25naXR1ZGUiOjYwLjY1NDA3NywiYWRkcmVzcyI6ItCh0LLQtdGA0LTQu9C-0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjCwg0JXQutCw0YLQtdGA0LjQvdCx0YPRgNCzLCDRg9C70LjRhtCwINCc0LDQu9GL0YjQtdCy0LAsIDEyNSIsImFkZHJlc3NJZCI6MjIzMTk0NzcsImxvY2F0aW9uSWQiOjY1NDA3MCwiZGlzdHJpY3RJZCI6Nzg5fQ.wkkTyzUmHikPyD_hMJkZIIoXmyIyGhvqpZQyKSXJ6V4",
"isFullAddress": true,
"latitude": 56.840872,
"locationId": 654070,
"longitude": 60.654077,
"parentLocationId": 653700
}