コード例 #1
0
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"
コード例 #2
0
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("*****@*****.**")
コード例 #3
0
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]")
コード例 #4
0
ファイル: group_join_test.py プロジェクト: dropbox/grouper
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("*****@*****.**")
コード例 #5
0
ファイル: groups_test.py プロジェクト: bonniech3n/merou
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))
コード例 #6
0
ファイル: groups_test.py プロジェクト: dropbox/grouper
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))
コード例 #7
0
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")
コード例 #8
0
ファイル: groups_test.py プロジェクト: dropbox/grouper
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")