fix(tests): объявить два живых теста #3063 в skip_allowlist — main красный, деплой встал #3069

Merged
lekss361 merged 1 commit from fix/3063-skip-allowlist into main 2026-08-23 22:14:50 +00:00
Owner

Чинит красный main. Deploy Trade-In / test падает на 60cb510e, из-за чего три скрапперные правки (#3065, #3067, #3068) собрались, но не выкатились — деплой встал на тест-гейте.

Причина

Pytest прошёл — 4732 passed, 34 skipped. Валит джобу гард из tests/conftest.py:

НЕУЧТЁННЫЙ ПРОПУСК (2): проверка не исполнилась и не объявлена в skip_allowlist.txt:
  - tests/test_3063_seller_fields_not_eroded.py::test_poor_rescrape_does_not_erase_seller_fields
  - tests/test_3063_seller_fields_not_eroded.py::test_real_change_still_overwrites
Почини тест либо внеси его в skip_allowlist.txt с причиной — пропуск без записи
неотличим от пройденной проверки.

Гард сработал ровно как задуман (#2722 / #2729 / #2740). Два поведенческих теста из #3067 требуют живую Postgres: в ci-tradein.yml postgres-сервис есть и они реально исполняются — там PR и был зелёным, — а в deploy-tradein.yml БД нет вовсе. Отсюда расхождение «зелёный PR, красный main»: два лэйна с разным окружением, и проверка, которая в одном идёт, в другом молча пропадает.

Что сделано

Запись в skip_allowlist.txt с ответом на вопрос, который требует шапка файла — почему проверку нельзя выполнить здесь и где она выполняется вместо этого.

Важно, что без записи оставалась бы не дыра, а только поведенческая половина: статическая половина того же файла (test_field_is_coalesce_protected_in_set × 6 полей и test_unchanged_gate_mirrors_the_set_clause) БД не требует и идёт на обоих лэйнах. То есть SQL-текст и паритет кортежей гейта проверяются везде, а на живой БД дополнительно проверяется поведение.

Test plan

  • Фальсификация локально: со старым skip_allowlist.txt гард печатает НЕУЧТЁННЫЙ ПРОПУСК (2), с новым молчит. Тесты в обоих случаях 7 passed, 2 skipped — то есть меняется именно вердикт гарда, а не состав прогона.

Refs #3063, #3067

**Чинит красный main.** `Deploy Trade-In / test` падает на `60cb510e`, из-за чего три скрапперные правки (#3065, #3067, #3068) собрались, но **не выкатились** — деплой встал на тест-гейте. ## Причина Pytest прошёл — `4732 passed, 34 skipped`. Валит джобу гард из `tests/conftest.py`: ``` НЕУЧТЁННЫЙ ПРОПУСК (2): проверка не исполнилась и не объявлена в skip_allowlist.txt: - tests/test_3063_seller_fields_not_eroded.py::test_poor_rescrape_does_not_erase_seller_fields - tests/test_3063_seller_fields_not_eroded.py::test_real_change_still_overwrites Почини тест либо внеси его в skip_allowlist.txt с причиной — пропуск без записи неотличим от пройденной проверки. ``` Гард сработал **ровно как задуман** (#2722 / #2729 / #2740). Два поведенческих теста из #3067 требуют живую Postgres: в `ci-tradein.yml` postgres-сервис есть и они реально исполняются — **там PR и был зелёным**, — а в `deploy-tradein.yml` БД нет вовсе. Отсюда расхождение «зелёный PR, красный main»: два лэйна с разным окружением, и проверка, которая в одном идёт, в другом молча пропадает. ## Что сделано Запись в `skip_allowlist.txt` с ответом на вопрос, который требует шапка файла — почему проверку нельзя выполнить здесь и где она выполняется вместо этого. Важно, что без записи оставалась бы **не дыра, а только поведенческая половина**: статическая половина того же файла (`test_field_is_coalesce_protected_in_set` × 6 полей и `test_unchanged_gate_mirrors_the_set_clause`) БД не требует и идёт на обоих лэйнах. То есть SQL-текст и паритет кортежей гейта проверяются везде, а на живой БД дополнительно проверяется поведение. ## Test plan - [x] **Фальсификация локально:** со старым `skip_allowlist.txt` гард печатает `НЕУЧТЁННЫЙ ПРОПУСК (2)`, с новым молчит. Тесты в обоих случаях `7 passed, 2 skipped` — то есть меняется именно вердикт гарда, а не состав прогона. Refs #3063, #3067
lekss361 added 1 commit 2026-08-23 22:07:52 +00:00
fix(tests): объявить два живых теста #3063 в skip_allowlist
All checks were successful
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 9s
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 4m29s
db3b58ee3e
Main красный: `Deploy Trade-In / test` падает, хотя pytest прошёл
(4732 passed, 34 skipped). Валит его гард из tests/conftest.py:

  НЕУЧТЁННЫЙ ПРОПУСК (2): проверка не исполнилась и не объявлена
  в skip_allowlist.txt

Гард сработал ровно как задуман — «пропуск без записи неотличим от
пройденной проверки» (#2722/#2729/#2740). Два поведенческих теста из
#3067 требуют живую Postgres: в ci-tradein.yml есть postgres-сервис и
они реально исполняются (там PR и был зелёным), а в deploy-tradein.yml
БД нет вовсе — отсюда зелёный PR и красный main.

Из-за этого три скрапперных правки (#3065, #3067, #3068) собрались, но
НЕ выкатились — деплой встал на тест-гейте.

Запись объясняет, почему проверку нельзя выполнить в deploy-лэйне и где
она выполняется вместо этого, как требует шапка файла. Статическая
половина того же файла (гард COALESCE + гард паритета кортежей) БД не
требует и идёт на обоих лэйнах — то есть без записи остаётся не дыра, а
только поведенческая проверка.

Проверено локально фальсификацией: со старым allowlist гард печатает
«НЕУЧТЁННЫЙ ПРОПУСК (2)», с новым молчит; тесты в обоих случаях
7 passed, 2 skipped.

Refs #3063, #3067
lekss361 merged commit 91731ddb5f into main 2026-08-23 22:14:50 +00:00
lekss361 deleted branch fix/3063-skip-allowlist 2026-08-23 22:14:50 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3069
No description provided.