If two pending memberships exist in the same projecto I can't delete them

remotes/origin/enhancement/email-actions
Alejandro Alonso 2014-11-26 11:36:16 +01:00
parent 72730fdb73
commit 00c8d33d0d
2 changed files with 12 additions and 1 deletions

View File

@ -242,7 +242,7 @@ class MembershipViewSet(ModelCrudViewSet):
return Response(status=status.HTTP_204_NO_CONTENT)
def pre_delete(self, obj):
if not services.can_user_leave_project(obj.user, obj.project):
if obj.user is not None and not services.can_user_leave_project(obj.user, obj.project):
raise exc.BadRequest(_("At least one of the user must be an active admin"))
def pre_save(self, obj):

View File

@ -184,3 +184,14 @@ def test_api_delete_membership(client):
response = client.json.delete(url)
assert response.status_code == 204
def test_api_delete_membership_without_user(client):
membership_owner = f.MembershipFactory(is_owner=True)
membership_without_user_one = f.MembershipFactory(project=membership_owner.project, user=None)
membership_without_user_two = f.MembershipFactory(project=membership_owner.project, user=None)
client.login(membership_owner.user)
url = reverse("memberships-detail", args=[membership_without_user_one.id])
response = client.json.delete(url)
assert response.status_code == 204