chore(tradein/avito): ссылки на реальный issue #3047 вместо выдуманного номера
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m48s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m48s
Воркер сослался на #3086, которого не существует — тест с таким именем остался бы загадкой для следующего читателя. Заведён настоящий issue #3047 с замерами покрытия и разбором дефекта; все ссылки и имя файла приведены к нему. Refs #3047
This commit is contained in:
parent
efce189c8b
commit
f34edeb512
2 changed files with 7 additions and 7 deletions
|
|
@ -1,4 +1,4 @@
|
|||
"""Тесты на реальной разметке для #3086 (5 полей detail-парсера Avito).
|
||||
"""Тесты на реальной разметке для #3047 (5 полей detail-парсера Avito).
|
||||
|
||||
Фикстуры — две живые detail-карточки, снятые через прод-браузер 2026-08-21:
|
||||
- avito_detail_card_owner_66m2.html — item_id 8322506679, продавец "Частное лицо"
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
enrichment = await fetch_detail(item_url)
|
||||
saved = save_detail_enrichment(db, enrichment)
|
||||
|
||||
#3086 — сверка с эталонной разметкой (2 живые карточки, 2026-08-21), что реально
|
||||
#3047 — сверка с эталонной разметкой (2 живые карточки, 2026-08-21), что реально
|
||||
парсится и что нет:
|
||||
- sale_type: не переименование, было сломано ЧТЕНИЕ таблицы параметров — Avito отдаёт
|
||||
"О квартире" и "О доме" как ДВА ОТДЕЛЬНЫХ <div> с ОДНИМ И ТЕМ ЖЕ
|
||||
|
|
@ -114,7 +114,7 @@ _PUBLISH_DATE_RE = re.compile(
|
|||
r"июля|августа|сентября|октября|ноября|декабря)\s+в",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
# Относительные варианты даты публикации (#3086: на эталонах 2026-08-21 marker
|
||||
# Относительные варианты даты публикации (#3047: на эталонах 2026-08-21 marker
|
||||
# item-view/item-date отдаёт "· сегодня в HH:MM" — раньше эта дата не читалась вовсе,
|
||||
# см. _extract_meta). "вчера" не встретилась в эталонах, но это тот же УИ-паттерн —
|
||||
# добавлена по аналогии, не подтверждена живьём.
|
||||
|
|
@ -644,7 +644,7 @@ def parse_detail_html(html: str, source_url: str) -> DetailEnrichment:
|
|||
description = _text(tree, "[data-marker='item-view/item-description']")
|
||||
|
||||
# ── Metro ────────────────────────────────────────────────────────────────
|
||||
# #3086: раньше метро бралось ТОЛЬКО из текста описания (_extract_metro) — 28
|
||||
# #3047: раньше метро бралось ТОЛЬКО из текста описания (_extract_metro) — 28
|
||||
# строк из 54 855 avito-листингов. На эталонах 2026-08-21 метро есть в структурной
|
||||
# разметке (div#item-view-address, по одному <span> на станцию с иконкой
|
||||
# "Пешком до метро") — читаем оттуда в первую очередь, оно покрывает и станции
|
||||
|
|
@ -659,7 +659,7 @@ def parse_detail_html(html: str, source_url: str) -> DetailEnrichment:
|
|||
metro_stations = _extract_metro(description)
|
||||
|
||||
# ── Cadastral number ────────────────────────────────────────────────────
|
||||
# #3086: НЕ извлекается — на эталонах 2026-08-21 нет ни текста "кадастров"/
|
||||
# #3047: НЕ извлекается — на эталонах 2026-08-21 нет ни текста "кадастров"/
|
||||
# "Кадастровый" на странице, ни заполненного значения. Единственный след поля —
|
||||
# пустая строка в JSON-блоке domotekaReportTeaser.cadastralNumber ("":"" — схема
|
||||
# у Avito зарезервирована, но не заполняется на наблюдаемых карточках). Не
|
||||
|
|
@ -688,7 +688,7 @@ def parse_detail_html(html: str, source_url: str) -> DetailEnrichment:
|
|||
photo_urls.append(src)
|
||||
|
||||
# ── Params blocks ────────────────────────────────────────────────────────
|
||||
# #3086: на эталонах 2026-08-21 "О квартире" и "О доме" — ДВА ОТДЕЛЬНЫХ <div>
|
||||
# #3047: на эталонах 2026-08-21 "О квартире" и "О доме" — ДВА ОТДЕЛЬНЫХ <div>
|
||||
# с ОДНИМ И ТЕМ ЖЕ data-marker='item-view/item-params' (каждый со своим <ul>),
|
||||
# а не один div с двумя <ul> внутри, как предполагал старый код (комментарий
|
||||
# "некоторые страницы совмещают всё в одном ul" ниже описывал ИМЕННО эту старую
|
||||
|
|
@ -1184,7 +1184,7 @@ def _extract_is_homeowner(tree: HTMLParser) -> bool | None:
|
|||
def _extract_meta(tree: HTMLParser) -> tuple[date | None, int | None, int | None]:
|
||||
"""Извлечь publish_date, views_total, views_today.
|
||||
|
||||
publish_date (#3086): раньше искалась ТОЛЬКО внутри текста item-id-блока
|
||||
publish_date (#3047): раньше искалась ТОЛЬКО внутри текста item-id-блока
|
||||
([data-marker='item-view/item-id']) — на эталонах 2026-08-21 этот блок содержит
|
||||
ИСКЛЮЧИТЕЛЬНО "№ <id>", а дата лежит в СОСЕДНЕМ элементе
|
||||
[data-marker='item-view/item-date'] (" · сегодня в HH:MM"), который .text()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue