test(pipeline-status): regression guard for duplicate Closes mentions #92
Loading…
Reference in a new issue
No description provided.
Delete branch "test/pipeline-status/duplicate-closes-guard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что сделано
Добавлен тест
test_check_issue_duplicate_same_number_not_ambiguousвtests/test_pipeline_status.py:check_issueна body, где один и тот же номер issue упомянут дважды (одинаковым ключевым словом и разными ключевыми словами) → фаза ISSUE DONE, не AMBIGUOUS.Почему
Урок PR#55: дубликат
Closes #Nв body ронялpipeline-statusв AMBIGUOUS. Сейчас защита живёт только в структуре кода (set()вcheck_issue) — регрессионного теста не было, и рефакторинг мог её случайно потерять.Watch out
Рядом с тестом добавлен комментарий-ссылка на существующий контрастный тест
test_check_issue_ambiguous_multiple(разные номера issues → AMBIGUOUS); дубликат не добавлялся.Pending
—
Closes #86
Code Review Summary
Регрессионный тест для защиты из PR#55: дубликат
Closes #Nв body (тем же ключевым словом или Closes+Fixes) → ISSUE DONE, не AMBIGUOUS. Логика проверена:CLOSURE_RE.findallдаёт["45", "45"]для обоих кейсов,set()дедуплицирует →len(issue_numbers) == 1→ DONE;gh issue viewзамокан. Тест не зависит от порядка, имеет asserts, CI green. Writer change нет (только тестовый файл) — cross-file impact отсутствует.Positives
set()-дедупликацию вcheck_issueот рефакторингаtest_check_issue_ambiguous_multipleпомогает читателю понять границу DONE/AMBIGUOUSSuggestions (info, not blocking)
for— можно было бы@pytest.mark.parametrizeдля изоляции кейсов в отчёте pytest (при падении будет видно, какой именно body упал). Не блокирует._regression_#55). Имя описательное, PR body ссылается на PR#55 — достаточно, но суффикс усилил бы связь.Verdict: APPROVE