All checks were successful
Deploy Trade-In / changes (push) Successful in 12s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 3m32s
Deploy Trade-In / build-backend (push) Successful in 1m10s
Deploy Trade-In / deploy (push) Successful in 7m56s
71 lines
6.4 KiB
Text
71 lines
6.4 KiB
Text
# Объявленные пропуски сьюта tradein-mvp/backend.
|
||
#
|
||
# Пропуск, которого здесь нет, роняет прогон (хук в tests/conftest.py). Смысл: не
|
||
# запретить пропуски, а запретить НЕЗАМЕТНЫЕ. Проверка, которая тихо перестала
|
||
# исполняться, со временем расходится с кодом, и узнают об этом ровно тогда,
|
||
# когда на неё понадобилось опереться (#2722, #2729, #2740).
|
||
#
|
||
# Формат: один nodeid в строке, без «[параметров]»; `#` — комментарий.
|
||
# Прежде чем добавить строку, ответь: почему эту проверку нельзя выполнить ЗДЕСЬ
|
||
# и где она выполняется вместо этого. Нет ответа — это не пропуск, а дыра.
|
||
#
|
||
# Список — НАДмножество сред: в CI Postgres есть (ci-tradein.yml поднимает
|
||
# сервис-контейнер и собирает схему из backend/data/sql/), на ноутбуке без БД —
|
||
# нет. Запись, чей пропуск не случился, безвредна; пропуск без записи — нет.
|
||
|
||
# ── Реальный рендер PDF: нужны native-либы WeasyPrint (Pango/cairo/GObject) ────
|
||
# Где выполняется: внутри prod-образа — runner-stage tradein-mvp/backend/Dockerfile
|
||
# ставит libcairo2 + libpango-1.0-0 + libpangoft2-1.0-0:
|
||
# docker exec tradein-backend python -m pytest -q -m pdf_render tests/test_pdf_real_render.py
|
||
# На голом ubuntu-latest в ci-tradein.yml этих либ нет (apt-шага в job'е нет).
|
||
tests/test_pdf_real_render.py
|
||
|
||
# ── Тесты против живой Postgres ───────────────────────────────────────────────
|
||
# В CI они ИДУТ (postgres-сервис в ci-tradein.yml, #2745) — записи ниже нужны
|
||
# только для прогона на машине без БД. Именно эта группа разъехалась со схемой,
|
||
# пока не бежала нигде: #2740 (houses.url стал NOT NULL) и #2744
|
||
# (test_gar_flats_loader падал до первого утверждения). Поднять локально:
|
||
# docker run -d -p 5432:5432 -e POSTGRES_DB=tradein -e POSTGRES_USER=tradein \
|
||
# -e POSTGRES_PASSWORD=tradein postgis/postgis:16-3.4
|
||
# psql ... -f backend/data/sql/*.sql # порядок как в deploy-tradein.yml
|
||
tests/tasks/test_backfill_house_coords_from_listings.py::test_real_transfers_agreeing_coords_skips_scattered_and_is_idempotent
|
||
tests/tasks/test_cadastral_geo_match.py::test_real_knn_nearest_within_threshold_picked
|
||
tests/test_audit_api.py::test_real_accounts_and_analytics_aggregate_inserted_rows
|
||
tests/test_gar_flats_loader.py::test_upsert_and_canon_match_populates_gar_flat_count
|
||
tests/test_house_dedup_merge.py::test_real_canon_clusterkey_and_geo_guard_merge_semantics
|
||
tests/test_house_dedup_merge.py::test_real_fias_pass_cross_guard_and_identity_carryover
|
||
tests/test_house_dedup_merge.py::test_real_fias_pass_ignores_geo_guard
|
||
tests/test_house_dedup_merge.py::test_real_merge_is_reversible_via_journal
|
||
tests/test_house_dedup_merge.py::test_real_merge_repoints_dedups_deletes_and_is_idempotent
|
||
tests/test_user_events.py::test_real_record_event_inserts_row
|
||
|
||
# Приватность/ретеншн (#2547) — тот же `_live_session()`. Приехали в main
|
||
# параллельно с самим списком, поэтому первым же прогоном deploy-лэйна хук их и
|
||
# поймал: 4 проверки не исполнились и не были объявлены. Проверено против живой
|
||
# БД (схема из backend/data/sql/ по 233 включительно) — 29 passed, тесты живы.
|
||
tests/test_data_erasure.py::test_real_erase_by_phone_does_not_match_different_number
|
||
tests/test_data_erasure.py::test_real_erase_by_phone_finds_differently_formatted_number
|
||
tests/test_data_erasure.py::test_real_erase_by_phone_finds_ru_trunk_prefix_variant
|
||
tests/test_purge_expired_trade_in_data.py::test_real_purge_deletes_only_anonymous_expired_estimates
|
||
|
||
# Payments retention (PR #2754), deep-review MEDIUM finding 2026-08-06 — тот же
|
||
# `_live_session()`. Проверяют предполётную проверку purge против реального
|
||
# retain_until/payments состояния (здоровая оплаченная строка не поднимает
|
||
# тревогу и не блокирует джобу), не только SQL-текст.
|
||
tests/test_purge_expired_trade_in_data.py::test_real_preflight_ignores_healthy_paid_row_flags_only_anomaly
|
||
tests/test_purge_expired_trade_in_data.py::test_real_purge_not_wedged_by_healthy_paid_row
|
||
|
||
# Диагноз оборванного прогона (#2764) — тот же `_live_session()`. Проверяет, что
|
||
# дефолт mark_banned ('unknown') проходит CHECK-констрейнт из миграции 234:
|
||
# на мок-лэйне (deploy-tradein.yml, DSN-заглушка) констрейнта нет вовсе.
|
||
tests/test_2764_ban_kind_no_default.py::test_real_default_ban_kind_survives_the_check_constraint
|
||
|
||
# Повтор застрявших transient_error (#2674, PR #2843) — тот же `_live_session()`.
|
||
# Проверяют ВЫБОРКУ очереди на живой схеме (кто попал в пакет прогона), а не текст
|
||
# SQL: на мок-лэйне deploy-tradein.yml БД нет вовсе. В ci-tradein.yml они бегут
|
||
# по-настоящему (Postgres + схема из data/sql) — там прогон и был красным на
|
||
# origin/main и зелёным на ветке. Статическая половина файла
|
||
# (test_retry_queue_is_not_bound_to_only_status) БД не требует и идёт в обоих лэйнах.
|
||
tests/test_house_imv_retry_stuck.py::test_explicit_only_status_still_takes_exhausted_houses
|
||
tests/test_house_imv_retry_stuck.py::test_stuck_transient_house_returns_to_the_queue_by_itself
|
||
tests/test_house_imv_retry_stuck.py::test_transient_attempts_counter_only_counts_transient
|