Exemplo n.º 1
0
 def test_validMultiple(self, activeClient, testGroup, testUser2,
                        testUser4):
     assert len(testGroup.members) == 2
     gr1 = GroupRequest.create(group_id=testGroup.id,
                               requestor_id=testUser2.id)
     gr2 = GroupRequest.create(group_id=testGroup.id,
                               requestor_id=testUser4.id)
     self.form = {"request": [gr1.id, gr2.id]}
     response = self.postRequest(activeClient)
     assert response.status_code == 200
     assert len(testGroup.members) == 4
     flash = f"{gr1.requestor.full_name} is now a member of {gr1.group.name}."
     assert flash.encode() in response.data
     flash2 = f"{gr2.requestor.full_name} is now a member of {gr2.group.name}."
     assert flash2.encode() in response.data
Exemplo n.º 2
0
 def test_delete(self, testUser):
     FriendRequest.create(requestor_id=testUser.id, friend_id=4)
     GroupRequest.create(requestor_id=testUser.id, group_id=2)
     assert testUser.address.user_id == 2
     assert len(User.query.all()) == 4
     assert len(testUser.reviews) == 4
     assert len(Review.query.all()) == 7
     assert len(FriendRequest.query.all()) == 1
     assert len(GroupRequest.query.all()) == 1
     testUser.delete()
     testUser = User.query.get(2)
     assert testUser is None
     assert Review.query.filter_by(user_id=2).all() == []
     assert FriendRequest.query.filter_by(requestor_id=2).all() == []
     assert GroupRequest.query.filter_by(requestor_id=2).all() == []
     assert len(User.query.all()) == 3
Exemplo n.º 3
0
def groupadd():
    """Send group admin request to join group."""
    form = GroupAddForm()
    if form.validate_on_submit():
        group = Group.query.get(form.id.data)
        if current_user != group.admin:
            args = {
                "group_id": group.id, "requestor_id": current_user.id
            }
            request = GroupRequest.query.filter_by(**args).first()
            if not request:
                request = GroupRequest.create(**args)
            request.send()
            msg = (
                f"Request sent to join {group.name}. Awaiting group admin "
                "confirmation."
            )
        else:
            current_user.add(group)
            msg = f"Successfully added to {group.name}."
        flash(msg)
        return groups_render()
    else:
        for error in form.errors['id']:
            flash(error)
        return groups_render(code=422)
Exemplo n.º 4
0
def join_group(group_id):
    group = get_object_or_404(Group,
                              Group.id == group_id)  #check if group exists
    user = User.query.get(session['user_id'])
    if user not in group.banned_members:
        if user not in group.members:
            check = GroupRequest.query.filter_by(
                user=session['user_id'],
                group=group.id).first()  #get friend request
            if group.private:
                if check == None:  #if no request present
                    request = GroupRequest(
                        user=user.id,
                        group=group.id,
                    )
                    db.session.add(request)
                    db.session.commit()
                    flash('Group is private, request to join sent')
                    return redirect(url_for('users.my_profile'))
                else:
                    flash('Request already sent')
            else:
                group.join(user)
        else:
            flash('You already joined this group')
    else:
        flash('You are banned from this group')
    return redirect(url_for('groups.group_page', group_id=group_id))
Exemplo n.º 5
0
 def test_addGroup(self, testUser):
     assert (len(testUser.groups) == 1)
     assert (len(testUser.sentgrouprequests) == 0)
     testGroup = Group.query.get(2)
     request = GroupRequest.create(group_id=2, requestor_id=2)
     assert len(testUser.sentgrouprequests) == 1
     testUser.add(testGroup, request)
     assert len(testUser.sentgrouprequests) == 0
     assert testGroup in testUser.groups
Exemplo n.º 6
0
def group_verify(token):
    """Verify group join request add token and add person to group
     membership."""
    request = GroupRequest.verify_token(token)
    if not request:
        msg = "Group request verification failed. Please have requestor "\
               "re-submit."
    else:
        new_member = request.requestor
        group = request.group
        new_member.add(group, request)
        msg = f"{new_member.full_name} is now a member of {group.name}."
    flash(msg)
    return redirect(url_for('auth.welcome'))
Exemplo n.º 7
0
 def tests_withPendingRequest(self, activeClient):
     GroupRequest.create(group_id=3, requestor_id=current_user.id)
     response = self.getRequest(activeClient)
     pendingCount = b"Pending<span>(1)</span>"
     assert pendingCount in response.data
Exemplo n.º 8
0
 def test_withPendingApproval(self, activeClient, testUser2):
     GroupRequest.create(group_id=1, requestor_id=testUser2.id)
     response = self.getRequest(activeClient)
     pendingCount = b"Pending<span>(1)</span>"
     assert pendingCount in response.data
Exemplo n.º 9
0
def testGroupRequest2(dbSession, testUser4, testGroup3):
    request = GroupRequest.create(
        id=2, group_id=testGroup3.id, requestor_id=testUser4.id
    )
    return request
Exemplo n.º 10
0
def testGroupRequest(dbSession, testUser4, testGroup):
    request = GroupRequest.create(
        id=1, group_id=testGroup.id, requestor_id=testUser4.id
    )
    return request
Exemplo n.º 11
0
 def test_getPending(self, testUser, testGroupRequest):
     pending = GroupRequest.get_pending(testUser)
     assert len(pending) == 1
     assert testGroupRequest in pending