taiga-back/tests/integration/test_memberships.py

66 lines
2.0 KiB
Python

from unittest import mock
import pytest
from django.core.urlresolvers import reverse
from taiga.projects import services
from .. import factories as f
pytestmark = pytest.mark.django_db
def test_get_members_from_bulk():
data = [{"project_id": "1", "role_id": "1", "email": "member1@email.com"},
{"project_id": "1", "role_id": "1", "email": "member2@email.com"}]
members = services.get_members_from_bulk(data)
assert len(members) == 2
assert members[0].email == "member1@email.com"
assert members[1].email == "member2@email.com"
@mock.patch("taiga.projects.services.members.db")
def test_create_members_in_bulk(db):
data = [{"project_id": "1", "role_id": "1", "email": "member1@email.com"},
{"project_id": "1", "role_id": "1", "email": "member2@email.com"}]
members = services.create_members_in_bulk(data)
db.save_in_bulk.assert_called_once_with(members, None)
def test_api_create_bulk_members(client):
project = f.ProjectFactory()
john = f.UserFactory.create()
joseph = f.UserFactory.create()
tester = f.RoleFactory(project=project, name="Tester")
gamer = f.RoleFactory(project=project, name="Gamer")
url = reverse("memberships-bulk-create")
data = {
"bulkMembers": [
{"project_id": project.pk, "role_id": tester.pk, "email": john.email},
{"project_id": project.pk, "role_id": gamer.pk, "email": joseph.email},
]
}
client.login(project.owner)
response = client.json.post(url, data)
assert response.status_code == 200
assert response.data[0]["email"] == john.email
assert response.data[1]["email"] == joseph.email
def test_api_resend_invitation(client, outbox):
invitation = f.create_invitation()
url = reverse("memberships-resend-invitation", kwargs={"pk": invitation.pk})
client.login(invitation.project.owner)
response = client.post(url)
assert response.status_code == 204
assert len(outbox) == 1
assert outbox[0].to == [invitation.email]