This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch sbp
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git
The following commit(s) were added to refs/heads/sbp by this push:
new fa010e35 Fix function ordering
fa010e35 is described below
commit fa010e3500940fe9e7bfd1bfcf388f72f4b0c837
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu Feb 26 20:27:42 2026 +0000
Fix function ordering
---
atr/paths.py | 8 +--
tests/e2e/admin/test_revoke_tokens.py | 128 +++++++++++++++++-----------------
tests/e2e/announce/test_get.py | 26 +++----
tests/e2e/committees/test_get.py | 22 +++---
tests/e2e/root/conftest.py | 14 ++--
tests/e2e/root/test_get.py | 8 +--
6 files changed, 103 insertions(+), 103 deletions(-)
diff --git a/atr/paths.py b/atr/paths.py
index 0bc556e0..4912d422 100644
--- a/atr/paths.py
+++ b/atr/paths.py
@@ -25,10 +25,6 @@ def base_path_for_revision(project_name: str, version_name:
str, revision: str)
return pathlib.Path(get_unfinished_dir(), project_name, version_name,
revision)
-def revision_path_for_file(project_name: str, version_name: str, revision:
str, file_name: str) -> pathlib.Path:
- return base_path_for_revision(project_name, version_name, revision) /
file_name
-
-
def get_attestable_dir() -> pathlib.Path:
return pathlib.Path(config.get().ATTESTABLE_STORAGE_DIR)
@@ -129,3 +125,7 @@ def release_directory_version(release: sql.Release) ->
pathlib.Path:
path = get_finished_dir() / path_project / path_version
# Do not add "case _" here
return path
+
+
+def revision_path_for_file(project_name: str, version_name: str, revision:
str, file_name: str) -> pathlib.Path:
+ return base_path_for_revision(project_name, version_name, revision) /
file_name
diff --git a/tests/e2e/admin/test_revoke_tokens.py
b/tests/e2e/admin/test_revoke_tokens.py
index 782c958e..4ecbf151 100644
--- a/tests/e2e/admin/test_revoke_tokens.py
+++ b/tests/e2e/admin/test_revoke_tokens.py
@@ -20,18 +20,57 @@ import e2e.helpers as helpers
from playwright.sync_api import Page, expect
-def test_revoke_tokens_page_loads(page_revoke_tokens: Page) -> None:
- expect(page_revoke_tokens).to_have_title("Revoke user tokens ~ ATR")
+def test_revoke_deletes_tokens_and_shows_success(
+ page_revoke_tokens_with_token: Page,
+) -> None:
+ page = page_revoke_tokens_with_token
+ # Verify the test user has tokens before revocation
+ token_count = admin_helpers.get_token_count_for_user(page, "test")
+ assert token_count > 0
-def test_revoke_tokens_page_has_heading(page_revoke_tokens: Page) -> None:
- heading = page_revoke_tokens.get_by_role("heading", name="Revoke user
tokens")
- expect(heading).to_be_visible()
+ # Revoke all tokens for the test user
+ page.locator('input[name="asf_uid"]').fill("test")
+ page.locator('input[name="confirm_revoke"]').fill("REVOKE")
+ page.get_by_role("button", name="Revoke all tokens").click()
+ page.wait_for_load_state()
+ # Should see success message
+ success_message =
page.locator('.flash-message.flash-success:has-text("Revoked")')
+ expect(success_message).to_be_visible()
-def test_revoke_tokens_page_has_uid_input(page_revoke_tokens: Page) -> None:
- uid_input = page_revoke_tokens.locator('input[name="asf_uid"]')
- expect(uid_input).to_be_visible()
+ # The test user should no longer appear in the table (or have 0 tokens)
+ test_user_row = page.locator('tr:has(td code:text-is("test"))')
+ expect(test_user_row).to_have_count(0)
+
+
+def test_revoke_nonexistent_user_shows_info(page_revoke_tokens: Page) -> None:
+ page = page_revoke_tokens
+ page.locator('input[name="asf_uid"]').fill("nonexistent_user_abc123")
+ page.locator('input[name="confirm_revoke"]').fill("REVOKE")
+ page.get_by_role("button", name="Revoke all tokens").click()
+ page.wait_for_load_state()
+
+ info_message = page.locator('.flash-message:has-text("No tokens found")')
+ expect(info_message).to_be_visible()
+
+
+def test_revoke_shows_error_for_wrong_confirmation(page_revoke_tokens: Page)
-> None:
+ page = page_revoke_tokens
+ page.locator('input[name="asf_uid"]').fill("test")
+ page.locator('input[name="confirm_revoke"]').fill("WRONG")
+ page.get_by_role("button", name="Revoke all tokens").click()
+ page.wait_for_load_state()
+
+ error_message = page.locator(".flash-message.flash-error")
+ expect(error_message).to_be_visible()
+
+
+def test_revoke_tokens_nav_link_exists(page_revoke_tokens: Page) -> None:
+ """The admin dropdown should contain a 'Revoke user tokens' link."""
+ page = page_revoke_tokens
+ nav_link = page.locator('a.dropdown-item:has-text("Revoke user tokens")')
+ expect(nav_link).to_have_count(1)
def test_revoke_tokens_page_has_confirmation_input(page_revoke_tokens: Page)
-> None:
@@ -39,20 +78,23 @@ def
test_revoke_tokens_page_has_confirmation_input(page_revoke_tokens: Page) ->
expect(confirm_input).to_be_visible()
+def test_revoke_tokens_page_has_heading(page_revoke_tokens: Page) -> None:
+ heading = page_revoke_tokens.get_by_role("heading", name="Revoke user
tokens")
+ expect(heading).to_be_visible()
+
+
def test_revoke_tokens_page_has_submit_button(page_revoke_tokens: Page) ->
None:
button = page_revoke_tokens.get_by_role("button", name="Revoke all tokens")
expect(button).to_be_visible()
-def test_revoke_tokens_page_shows_token_counts_table(
- page_revoke_tokens_with_token: Page,
-) -> None:
- page = page_revoke_tokens_with_token
- table = page.locator("table")
- expect(table).to_be_visible()
- # The test user should appear in the table
- test_user_row = page.locator('tr:has(td code:text-is("test"))')
- expect(test_user_row).to_be_visible()
+def test_revoke_tokens_page_has_uid_input(page_revoke_tokens: Page) -> None:
+ uid_input = page_revoke_tokens.locator('input[name="asf_uid"]')
+ expect(uid_input).to_be_visible()
+
+
+def test_revoke_tokens_page_loads(page_revoke_tokens: Page) -> None:
+ expect(page_revoke_tokens).to_have_title("Revoke user tokens ~ ATR")
def test_revoke_tokens_page_shows_no_tokens_message_when_empty(
@@ -67,50 +109,15 @@ def
test_revoke_tokens_page_shows_no_tokens_message_when_empty(
expect(table.or_(info_alert)).to_be_visible()
-def test_revoke_shows_error_for_wrong_confirmation(page_revoke_tokens: Page)
-> None:
- page = page_revoke_tokens
- page.locator('input[name="asf_uid"]').fill("test")
- page.locator('input[name="confirm_revoke"]').fill("WRONG")
- page.get_by_role("button", name="Revoke all tokens").click()
- page.wait_for_load_state()
-
- error_message = page.locator(".flash-message.flash-error")
- expect(error_message).to_be_visible()
-
-
-def test_revoke_nonexistent_user_shows_info(page_revoke_tokens: Page) -> None:
- page = page_revoke_tokens
- page.locator('input[name="asf_uid"]').fill("nonexistent_user_abc123")
- page.locator('input[name="confirm_revoke"]').fill("REVOKE")
- page.get_by_role("button", name="Revoke all tokens").click()
- page.wait_for_load_state()
-
- info_message = page.locator('.flash-message:has-text("No tokens found")')
- expect(info_message).to_be_visible()
-
-
-def test_revoke_deletes_tokens_and_shows_success(
+def test_revoke_tokens_page_shows_token_counts_table(
page_revoke_tokens_with_token: Page,
) -> None:
page = page_revoke_tokens_with_token
-
- # Verify the test user has tokens before revocation
- token_count = admin_helpers.get_token_count_for_user(page, "test")
- assert token_count > 0
-
- # Revoke all tokens for the test user
- page.locator('input[name="asf_uid"]').fill("test")
- page.locator('input[name="confirm_revoke"]').fill("REVOKE")
- page.get_by_role("button", name="Revoke all tokens").click()
- page.wait_for_load_state()
-
- # Should see success message
- success_message =
page.locator('.flash-message.flash-success:has-text("Revoked")')
- expect(success_message).to_be_visible()
-
- # The test user should no longer appear in the table (or have 0 tokens)
+ table = page.locator("table")
+ expect(table).to_be_visible()
+ # The test user should appear in the table
test_user_row = page.locator('tr:has(td code:text-is("test"))')
- expect(test_user_row).to_have_count(0)
+ expect(test_user_row).to_be_visible()
def test_revoke_tokens_removes_tokens_from_user_view(
@@ -128,10 +135,3 @@ def test_revoke_tokens_removes_tokens_from_user_view(
helpers.visit(page, admin_helpers.TOKENS_PATH)
token_row =
page.locator(f'tr:has(td:text-is("{admin_helpers.TOKEN_LABEL_FOR_TESTING}"))')
expect(token_row).to_have_count(0)
-
-
-def test_revoke_tokens_nav_link_exists(page_revoke_tokens: Page) -> None:
- """The admin dropdown should contain a 'Revoke user tokens' link."""
- page = page_revoke_tokens
- nav_link = page.locator('a.dropdown-item:has-text("Revoke user tokens")')
- expect(nav_link).to_have_count(1)
diff --git a/tests/e2e/announce/test_get.py b/tests/e2e/announce/test_get.py
index 3390fa5b..72872f86 100644
--- a/tests/e2e/announce/test_get.py
+++ b/tests/e2e/announce/test_get.py
@@ -19,6 +19,19 @@ import e2e.announce.helpers as helpers # type:
ignore[reportMissingImports]
from playwright.sync_api import Page, expect
+def test_finish_move_form_populates_from_json(page_finish: Page) -> None:
+ """The finish move form should populate rows from script JSON data."""
+ file_option = page_finish.locator("#file-list-table-body
input[type='checkbox'][data-item-path]").first
+ dir_option = page_finish.locator("#dir-list-table-body
input[type='radio'][name='target-directory-radio']").first
+ expect(file_option).to_be_visible()
+ expect(dir_option).to_be_visible()
+
+ toggle_button = page_finish.locator("#select-files-toggle-button")
+ expect(toggle_button).to_have_text("Select these files")
+ toggle_button.click()
+ expect(toggle_button).to_have_text("Unselect all")
+
+
def test_path_adds_leading_slash(page_announce: Page) -> None:
"""Paths without a leading '/' should have one added."""
help_text = helpers.fill_path_suffix(page_announce, "apple/banana")
@@ -82,16 +95,3 @@ def
test_submit_button_disabled_until_confirm_typed(page_announce: Page) -> None
confirm_input.fill("CONFIRM")
expect(submit_button).to_be_enabled()
-
-
-def test_finish_move_form_populates_from_json(page_finish: Page) -> None:
- """The finish move form should populate rows from script JSON data."""
- file_option = page_finish.locator("#file-list-table-body
input[type='checkbox'][data-item-path]").first
- dir_option = page_finish.locator("#dir-list-table-body
input[type='radio'][name='target-directory-radio']").first
- expect(file_option).to_be_visible()
- expect(dir_option).to_be_visible()
-
- toggle_button = page_finish.locator("#select-files-toggle-button")
- expect(toggle_button).to_have_text("Select these files")
- toggle_button.click()
- expect(toggle_button).to_have_text("Unselect all")
diff --git a/tests/e2e/committees/test_get.py b/tests/e2e/committees/test_get.py
index 2ab80ed4..a30ecaee 100644
--- a/tests/e2e/committees/test_get.py
+++ b/tests/e2e/committees/test_get.py
@@ -71,17 +71,6 @@ def test_filter_updates_committee_count(page_committees:
Page) -> None:
expect(count_span).not_to_have_text(initial_count or "")
-def test_participant_button_toggles_text(page_committees: Page) -> None:
- """Clicking participant button should toggle the button text."""
- participant_button = page_committees.locator("#filter-participant-button")
-
- expect(participant_button).to_have_text("Show all committees")
-
- participant_button.click()
-
- expect(participant_button).to_have_text("Show my committees")
-
-
def test_participant_button_toggles_aria_pressed(page_committees: Page) ->
None:
"""Clicking participant button should toggle aria pressed state."""
participant_button = page_committees.locator("#filter-participant-button")
@@ -95,3 +84,14 @@ def
test_participant_button_toggles_aria_pressed(page_committees: Page) -> None:
participant_button.click()
expect(participant_button).to_have_attribute("aria-pressed", "true")
+
+
+def test_participant_button_toggles_text(page_committees: Page) -> None:
+ """Clicking participant button should toggle the button text."""
+ participant_button = page_committees.locator("#filter-participant-button")
+
+ expect(participant_button).to_have_text("Show all committees")
+
+ participant_button.click()
+
+ expect(participant_button).to_have_text("Show my committees")
diff --git a/tests/e2e/root/conftest.py b/tests/e2e/root/conftest.py
index 3b9127f9..507a3715 100644
--- a/tests/e2e/root/conftest.py
+++ b/tests/e2e/root/conftest.py
@@ -29,19 +29,19 @@ if TYPE_CHECKING:
@pytest.fixture
-def page_index(page: Page) -> Generator[Page]:
- helpers.visit(page, "/")
+def page_about(page: Page) -> Generator[Page]:
+ helpers.log_in(page)
+ helpers.visit(page, "/about")
yield page
@pytest.fixture
-def page_policies(page: Page) -> Generator[Page]:
- helpers.visit(page, "/policies")
+def page_index(page: Page) -> Generator[Page]:
+ helpers.visit(page, "/")
yield page
@pytest.fixture
-def page_about(page: Page) -> Generator[Page]:
- helpers.log_in(page)
- helpers.visit(page, "/about")
+def page_policies(page: Page) -> Generator[Page]:
+ helpers.visit(page, "/policies")
yield page
diff --git a/tests/e2e/root/test_get.py b/tests/e2e/root/test_get.py
index 928b3699..75e925db 100644
--- a/tests/e2e/root/test_get.py
+++ b/tests/e2e/root/test_get.py
@@ -18,6 +18,10 @@
from playwright.sync_api import Page, expect
+def test_about_loads(page_about: Page) -> None:
+ expect(page_about).to_have_title("About ATR ~ ATR")
+
+
def test_index_has_login_button(page_index: Page) -> None:
login_button = page_index.get_by_role("link", name="Log in")
expect(login_button).to_be_visible()
@@ -34,7 +38,3 @@ def test_policies_has_heading(page_policies: Page) -> None:
def test_policies_loads(page_policies: Page) -> None:
expect(page_policies).to_have_title("Policies ~ ATR")
-
-
-def test_about_loads(page_about: Page) -> None:
- expect(page_about).to_have_title("About ATR ~ ATR")
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]