diff --git a/services/event_signup_service.py b/services/event_signup_service.py index f0d2363c..69605b31 100644 --- a/services/event_signup_service.py +++ b/services/event_signup_service.py @@ -83,8 +83,10 @@ def update_event_signup(event: Event_DB, data: EventSignupUpdate, user_id: int, if signup is None: raise HTTPException(status.HTTP_404_NOT_FOUND) - if manage_permission == False and not is_group_allowed( - event, db.query(User_DB).filter(User_DB.id == user_id).one(), data.group_name + if ( + manage_permission == False + and data.group_name is not None + and not is_group_allowed(event, db.query(User_DB).filter(User_DB.id == user_id).one(), data.group_name) ): raise HTTPException(status.HTTP_403_FORBIDDEN, detail="User cannot sign up with this group") diff --git a/tests/test_event_signup.py b/tests/test_event_signup.py index 97be0916..c62d710b 100644 --- a/tests/test_event_signup.py +++ b/tests/test_event_signup.py @@ -37,14 +37,25 @@ def test_signup_with_group_the_user_is_not_in(client, member_token, membered_use assert response.status_code == 403 -def test_signup_without_group(client, member_token, membered_user, nollning_event, mission_group): - """Signing up without picking a group is not restricted by the group types.""" +def test_nollning_event_signup_without_group(client, member_token, membered_user, nollning_event, mission_group): + """Signing up to nollning event without picking a group is not allowed.""" response = client.post( f"/event-signup/{nollning_event['id']}", json={"user_id": membered_user.id}, headers=auth_headers(member_token), ) + assert response.status_code == 403, response.text + + +def test_non_nollning_event_signup_without_group(client, member_token, membered_user, event, mission_group): + """Signing up to non-nollning event without picking a group is not restricted by the group types.""" + response = client.post( + f"/event-signup/{event['id']}", + json={"user_id": membered_user.id}, + headers=auth_headers(member_token), + ) + assert response.status_code in (200, 201), response.text assert response.json()["group_name"] is None