def test_list_groups(tmpdir, setup, browser): # type: (LocalPath, SetupTest, Chrome) -> None with setup.transaction(): setup.create_group("one-group", "Some group", GroupJoinPolicy.CAN_JOIN) setup.create_group("another-group", "Another group", GroupJoinPolicy.CAN_ASK) setup.create_group("private", join_policy=GroupJoinPolicy.NOBODY) with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups")) page = GroupsViewPage(browser) group_row = page.find_group_row("one-group") assert group_row.name == "one-group" assert group_row.href == url(frontend_url, "/groups/one-group") assert group_row.description == "Some group" assert group_row.can_join == "Anyone" group_row = page.find_group_row("another-group") assert group_row.name == "another-group" assert group_row.href == url(frontend_url, "/groups/another-group") assert group_row.description == "Another group" assert group_row.can_join == "Must Ask" group_row = page.find_group_row("private") assert group_row.name == "private" assert group_row.href == url(frontend_url, "/groups/private") assert group_row.description == "" assert group_row.can_join == "Nobody"
def test_require_clickthru(tmpdir: LocalPath, setup: SetupTest, browser: Chrome) -> None: with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups")) groups_page = GroupsViewPage(browser) groups_page.click_create_group_button() create_group_modal = groups_page.get_create_group_modal() create_group_modal.set_group_name("test-group") create_group_modal.set_join_policy(GroupJoinPolicy.CAN_JOIN) create_group_modal.click_require_clickthru_checkbox() create_group_modal.confirm() with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups/test-group/join")) join_page = GroupJoinPage(browser) join_page.set_reason("Testing") join_page.submit() clickthru_modal = join_page.get_clickthru_modal() clickthru_modal.confirm() group_page = GroupViewPage(browser) assert group_page.current_url.endswith( "/groups/test-group?refresh=yes") assert group_page.find_member_row("*****@*****.**")
def test_group_create(tmpdir: LocalPath, setup: SetupTest, browser: Chrome) -> None: with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups")) # First create a group from the view page with an error (an invalid name, doubling as a # test that @ in group names is rejected). This should leave that page and go to the # dedicated group creation page with the form already set up. groups_page = GroupsViewPage(browser) groups_page.click_create_group_button() create_group_modal = groups_page.get_create_group_modal() create_group_modal.set_group_name("test-group@something") create_group_modal.set_description("some description") create_group_modal.confirm() create_page = GroupCreatePage(browser) create_page.has_alert("Group names cannot contain @") create_page.set_group_name("test-group") create_page.submit() view_page = GroupViewPage(browser) assert view_page.subheading == "test-group" row = view_page.find_member_row("*****@*****.**") assert row.role == "owner" assert row.href.endswith("/users/[email protected]")
def test_require_clickthru(tmpdir, setup, browser): # type: (LocalPath, SetupTest, Chrome) -> None with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups")) groups_page = GroupsViewPage(browser) groups_page.click_create_group_button() create_group_modal = groups_page.get_create_group_modal() create_group_modal.set_group_name("test-group") create_group_modal.set_join_policy(GroupJoinPolicy.CAN_JOIN) create_group_modal.click_require_clickthru_checkbox() create_group_modal.confirm() with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups/test-group/join")) join_page = GroupJoinPage(browser) join_page.set_reason("Testing") join_page.submit() clickthru_modal = join_page.get_clickthru_modal() clickthru_modal.confirm() group_page = GroupViewPage(browser) assert group_page.current_url.endswith("/groups/test-group?refresh=yes") assert group_page.find_member_row("*****@*****.**")
def test_list_groups(async_server, browser, groups): # noqa: F811 fe_url = url(async_server, "/groups") browser.get(fe_url) page = GroupsViewPage(browser) for name, _ in groups.iteritems(): row = page.find_group_row(name) assert row.href.endswith("/groups/{}".format(name))
def test_list_groups(async_server, browser, groups): # noqa: F811 fe_url = url(async_server, "/groups") browser.get(fe_url) page = GroupsViewPage(browser) for name in groups: row = page.find_group_row(name) assert row.href.endswith("/groups/{}".format(name))
def test_list_audited_groups(tmpdir, setup, browser): # type: (LocalPath, SetupTest, Chrome) -> None with setup.transaction(): setup.create_group("one-group", "Some group") setup.create_group("audited-group", "Another group") setup.create_permission("audited", "", audited=True) setup.grant_permission_to_group("audited", "", "audited-group") setup.add_group_to_group("child-audited", "audited-group") with frontend_server(tmpdir, "*****@*****.**") as frontend_url: browser.get(url(frontend_url, "/groups")) page = GroupsViewPage(browser) assert page.find_group_row("one-group") assert page.find_group_row("audited-group") assert page.find_group_row("child-audited") page.click_show_audited_button() row = page.find_group_row("audited-group") assert row.audited_reason == "Direct" row = page.find_group_row("child-audited") assert row.audited_reason == "Inherited" with pytest.raises(NoSuchElementException): page.find_group_row("one-group")