Exemple #1
0
def test_group_remove_member(client, dummy_user_as_group_manager, make_user):
    """Test removing a member from a group"""
    make_user("testuser")
    ipa_admin.group_add_member("dummy-group", users="testuser")
    result = client.post('/group/dummy-group/members/remove',
                         data={"username": "******"})
    assert_redirects_with_flash(
        result,
        expected_url="/group/dummy-group/",
        expected_message=
        "You got it! testuser has been removed from dummy-group.",
        expected_category="success",
    )
Exemple #2
0
def test_group_remove_self(client, logged_in_dummy_user, dummy_group):
    """Test a non-sponsor user removing themselves from a group"""
    ipa_admin.group_add_member("dummy-group", users="dummy")
    result = client.get('/group/dummy-group/')
    assert result.status_code == 200
    page = BeautifulSoup(result.data, 'html.parser')
    leave_btn = page.select_one("#leave-group-btn")
    assert leave_btn.get_text(strip=True) == "Leave group"

    result = client.post('/group/dummy-group/members/remove',
                         data={"username": "******"})
    assert_redirects_with_flash(
        result,
        expected_url="/group/dummy-group/",
        expected_message="You got it! dummy has been removed from dummy-group.",
        expected_category="success",
    )
Exemple #3
0
def test_password_changes_user(client, logged_in_dummy_user, dummy_group,
                               no_password_min_time):
    """Verify that password changes"""
    ipa_admin.group_add_member("dummy-group", users="dummy")
    result = client.post(
        '/user/dummy/password-reset',
        data={
            "username": "******",
            "current_password": "******",
            "password": "******",
            "password_confirm": "secretpw",
        },
    )
    assert_redirects_with_flash(
        result,
        expected_url="/",
        expected_message="Your password has been changed",
        expected_category="success",
    )
def test_change_recent_password_change(
    client,
    dummy_user,
    dummy_group,
    token_for_dummy_user,
    no_password_min_time,
    patched_lock_active,
):
    ipa_admin.group_add_member("dummy-group", users="dummy")
    ipa = untouched_ipa_client(current_app)
    ipa.change_password("dummy", "dummy_password", "dummy_password")
    result = client.get(f'/forgot-password/change?token={token_for_dummy_user}')
    patched_lock_active["delete"].assert_called_once()
    assert_redirects_with_flash(
        result,
        expected_url="/forgot-password/ask",
        expected_message=(
            "Your password has been changed since you requested this token, please "
            "request a new one."
        ),
        expected_category="warning",
    )
Exemple #5
0
def test_group(client, dummy_user_as_group_manager, make_user):
    """Test the group detail page: /group/<groupname>"""
    test_users = ["testuser1", "testuser2", "testuser3"]
    # Add members to the group
    for username in test_users:
        make_user(username)
    ipa_admin.group_add_member("dummy-group", users=test_users)

    # Add another user, but only as a membermanager
    make_user("testuser4")
    ipa_admin.group_add_member_manager("dummy-group", users=["testuser4"])

    result = client.get('/group/dummy-group/')
    assert result.status_code == 200
    page = BeautifulSoup(result.data, 'html.parser')
    assert page.title
    assert page.title.string == 'Group: dummy-group - The Fedora Project'
    title = page.select_one("div[data-section='identity'] > .col > h3")
    assert title.get_text(strip=True) == "dummy-group"
    assert title.find_next_sibling("div").get_text(
        strip=True) == "A dummy group"
    # Check the sponsors list
    sponsors = page.select(
        "div[data-section='sponsors'] .list-group .list-group-item")
    assert len(sponsors) == 2, str(sponsors)
    assert sponsors[0].find("a")["href"] == "/user/dummy/"
    assert sponsors[0].find("a").get_text(strip=True) == "dummy"
    assert sponsors[1].find("a")["href"] == "/user/testuser4/"
    assert sponsors[1].find("a").get_text(strip=True) == "testuser4"
    # Check the members list
    members = page.select("div[data-section='members'] ul li")
    assert len(members) == len(test_users) + 1
    for index, username in enumerate(["dummy"] + test_users):
        assert members[index].find("a")["href"] == f"/user/{username}/"
        assert members[index].find("a").get_text(strip=True) == username
    # Current user is a sponsor, there must be the corresponding add form
    assert len(page.select("form[action='/group/dummy-group/members/']")) == 1
Exemple #6
0
def dummy_user_as_group_manager(logged_in_dummy_user, dummy_group):
    """Make the dummy user a manager of the dummy-group group."""
    ipa_admin.group_add_member("dummy-group", users="dummy")
    ipa_admin.group_add_member_manager("dummy-group", users="dummy")
    yield