You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by ak...@apache.org on 2026/05/22 03:03:54 UTC
(tooling-trusted-releases) 04/05: Acknowledge concern groups in vote/announce e2e fixtures
This is an automated email from the ASF dual-hosted git repository.
andrewmusselman pushed a commit to branch fix-broken-e2e-tests
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git
commit 495f2f2ea035b3588f513582beb10040dc33c4da
Author: Andrew Musselman <ak...@apache.org>
AuthorDate: Thu May 21 21:42:51 2026 +0000
Acknowledge concern groups in vote/announce e2e fixtures
The vote_context, announce_context, and auto_archive_context fixtures
all build a release, navigate to /voting/<project>/<version>, and click
"Send vote email" expecting a redirect to /vote/<project>/<version>.
On main the redirect never arrives and Playwright times out after 30s,
producing 28 fixture errors across e2e/vote/ and e2e/announce/.
The handler (atr/post/voting.py::selected) requires every concern group
raised by the configured checks to be acknowledged via the
concerns_noted form field before it will start the vote:
missing = util.missing_concern_groups(concern_groups,
start_voting_form.concerns_noted)
if missing:
return await session.form_error(
"concerns_noted",
util.concern_acknowledgement_error(missing),
)
For the test project this currently produces:
Error: Review and acknowledge every current concern group before
starting the vote: Rat Check
The handler returns form_error, which redirects back to the same
/voting/ URL, so the test sees no navigation and the wait_for_url
times out.
Tick every concerns_noted checkbox (rendered by
render.html_concerns_noted_checkboxes with name="concerns_noted")
before clicking "Send vote email". This matches the manual flow a
release manager would follow: review each concern, then acknowledge
it. With no checks raising concerns the loop is a no-op, so the change
is safe for releases that have no concerns.
Applied to all three call sites that drive the vote-start form:
- tests/e2e/vote/conftest.py::vote_context
- tests/e2e/announce/conftest.py::announce_context
- tests/e2e/announce/conftest.py::_run_release_to_finish (used by
auto_archive_context)
---
tests/e2e/announce/conftest.py | 8 ++++++++
tests/e2e/vote/conftest.py | 7 +++++++
2 files changed, 15 insertions(+)
diff --git a/tests/e2e/announce/conftest.py b/tests/e2e/announce/conftest.py
index 4984b472..fccb35f0 100644
--- a/tests/e2e/announce/conftest.py
+++ b/tests/e2e/announce/conftest.py
@@ -80,6 +80,10 @@ def announce_context(browser: Browser) -> Generator[BrowserContext]:
page.wait_for_load_state()
page.locator("input#vote_duration").fill("0")
+ # Acknowledge every concern group raised by the checks (e.g. Rat Check)
+ # so the vote-start form accepts the submission.
+ for _box in page.locator('input[name="concerns_noted"]').all():
+ _box.check()
page.get_by_role("button", name="Send vote email").click()
page.wait_for_url(f"**/vote/{PROJECT_KEY}/{VERSION_KEY}")
@@ -219,6 +223,10 @@ def _run_release_to_finish(context: BrowserContext, page: Page, version: str, op
page.wait_for_load_state()
page.locator("input#vote_duration").fill("0")
+ # Acknowledge every concern group raised by the checks (e.g. Rat Check)
+ # so the vote-start form accepts the submission.
+ for _box in page.locator('input[name="concerns_noted"]').all():
+ _box.check()
page.get_by_role("button", name="Send vote email").click()
page.wait_for_url(f"**/vote/{PROJECT_KEY}/{version}")
diff --git a/tests/e2e/vote/conftest.py b/tests/e2e/vote/conftest.py
index 69383d0d..6626edb5 100644
--- a/tests/e2e/vote/conftest.py
+++ b/tests/e2e/vote/conftest.py
@@ -78,6 +78,13 @@ def vote_context(browser: Browser) -> Generator[BrowserContext]:
page.locator('a[title="Start a vote on this draft"]').click()
page.wait_for_load_state()
+ # Acknowledge every concern group raised by the checks (e.g. Rat Check)
+ # so the vote-start form accepts the submission. Without this, the
+ # handler returns to the form with an "acknowledge every current concern
+ # group" error and the redirect to /vote/... never happens.
+ for _box in page.locator('input[name="concerns_noted"]').all():
+ _box.check()
+
page.get_by_role("button", name="Send vote email").click()
page.wait_for_url(f"**/vote/{PROJECT_KEY}/{VERSION_KEY}")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org