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", )
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", )
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", )
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
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