Esempio n. 1
0
def test_remove_last_owner_via_audit(tmpdir: LocalPath, setup: SetupTest,
                                     browser: Chrome) -> None:
    future = datetime.utcnow() + timedelta(1)

    with setup.transaction():
        setup.add_user_to_group("*****@*****.**", "audited-team", role="owner")
        setup.create_permission("audited", audited=True)
        setup.grant_permission_to_group("audited", "", "audited-team")
        setup.add_user_to_group("*****@*****.**", "auditors")
        setup.add_user_to_group("*****@*****.**", "auditors", role="owner")
        setup.grant_permission_to_group(AUDIT_VIEWER, "", "auditors")
        setup.grant_permission_to_group(AUDIT_MANAGER, "", "auditors")
        setup.grant_permission_to_group(PERMISSION_AUDITOR, "", "auditors")
        setup.add_user_to_group("*****@*****.**",
                                "audited-team",
                                role="owner",
                                expiration=future)

    with frontend_server(tmpdir, "*****@*****.**") as frontend_url:
        browser.get(url(frontend_url, "/audits/create"))

        create_page = AuditsCreatePage(browser)
        create_page.set_end_date(future.strftime("%m/%d/%Y"))
        create_page.submit()

        browser.get(url(frontend_url, "/groups/audited-team"))
        group_page = GroupViewPage(browser)
        audit_modal = group_page.get_audit_modal()
        audit_modal.find_member_row("*****@*****.**").set_audit_status("remove")
        audit_modal.confirm()

        assert group_page.current_url.endswith("/groups/audited-team")
        assert group_page.has_alert(group_ownership_policy.EXCEPTION_MESSAGE)
Esempio n. 2
0
def test_remove_last_owner(tmpdir: LocalPath, setup: SetupTest, browser: Chrome) -> None:
    with setup.transaction():
        setup.add_user_to_group("*****@*****.**", "team-sre", role="owner")
        setup.add_user_to_group("*****@*****.**", "admins")
        setup.grant_permission_to_group(GROUP_ADMIN, "", "admins")

    with frontend_server(tmpdir, "*****@*****.**") as frontend_url:
        browser.get(url(frontend_url, "/groups/team-sre"))
        page = GroupViewPage(browser)

        row = page.find_member_row("*****@*****.**")
        assert row.role == "owner"
        row.click_remove_button()

        modal = page.get_remove_user_modal()
        modal.confirm()

        row = page.find_member_row("*****@*****.**")
        assert row.role == "owner"
        assert page.has_alert(group_ownership_policy.EXCEPTION_MESSAGE)