Create membership for user creating project <=> role exists
parent
08ca07454a
commit
47a28cc3dc
|
@ -752,5 +752,9 @@ def project_post_save(sender, instance, created, **kwargs):
|
||||||
|
|
||||||
instance.save()
|
instance.save()
|
||||||
|
|
||||||
owner_role = instance.roles.get(slug=template.default_owner_role)
|
try:
|
||||||
Membership.objects.create(user=instance.owner, project=instance, role=owner_role, is_owner=True, email=instance.owner.email)
|
owner_role = instance.roles.get(slug=template.default_owner_role)
|
||||||
|
Membership.objects.create(user=instance.owner, project=instance, role=owner_role,
|
||||||
|
is_owner=True, email=instance.owner.email)
|
||||||
|
except Role.DoesNotExist:
|
||||||
|
pass
|
||||||
|
|
|
@ -20,9 +20,9 @@ import threading
|
||||||
from datetime import date, timedelta
|
from datetime import date, timedelta
|
||||||
|
|
||||||
from django.db.models.loading import get_model
|
from django.db.models.loading import get_model
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
import factory
|
import factory
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
|
|
||||||
class Factory(factory.DjangoModelFactory):
|
class Factory(factory.DjangoModelFactory):
|
||||||
|
@ -54,6 +54,7 @@ class ProjectTemplateFactory(Factory):
|
||||||
priorities = []
|
priorities = []
|
||||||
severities = []
|
severities = []
|
||||||
roles = []
|
roles = []
|
||||||
|
default_owner_role = "tester"
|
||||||
|
|
||||||
|
|
||||||
class ProjectFactory(Factory):
|
class ProjectFactory(Factory):
|
||||||
|
@ -70,6 +71,7 @@ class RoleFactory(Factory):
|
||||||
FACTORY_FOR = get_model("users", "Role")
|
FACTORY_FOR = get_model("users", "Role")
|
||||||
|
|
||||||
name = "Tester"
|
name = "Tester"
|
||||||
|
slug = "tester"
|
||||||
project = factory.SubFactory("tests.factories.ProjectFactory")
|
project = factory.SubFactory("tests.factories.ProjectFactory")
|
||||||
|
|
||||||
|
|
||||||
|
@ -393,6 +395,8 @@ def create_project(**kwargs):
|
||||||
defaults = {}
|
defaults = {}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
|
|
||||||
|
ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
|
||||||
|
|
||||||
project = ProjectFactory.create(**defaults)
|
project = ProjectFactory.create(**defaults)
|
||||||
project.default_issue_status = IssueStatusFactory.create(project=project)
|
project.default_issue_status = IssueStatusFactory.create(project=project)
|
||||||
project.default_severity = SeverityFactory.create(project=project)
|
project.default_severity = SeverityFactory.create(project=project)
|
||||||
|
@ -404,3 +408,10 @@ def create_project(**kwargs):
|
||||||
project.save()
|
project.save()
|
||||||
|
|
||||||
return project
|
return project
|
||||||
|
|
||||||
|
|
||||||
|
def create_user(**kwargs):
|
||||||
|
"Create an user along with her dependencies"
|
||||||
|
ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
|
||||||
|
RoleFactory.create()
|
||||||
|
return UserFactory.create(**kwargs)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
from .. import factories as f
|
from .. import factories as f
|
||||||
|
@ -9,8 +8,7 @@ pytestmark = pytest.mark.django_db
|
||||||
|
|
||||||
|
|
||||||
def test_api_create_project(client):
|
def test_api_create_project(client):
|
||||||
f.ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
|
user = f.create_user()
|
||||||
user = f.UserFactory.create()
|
|
||||||
url = reverse("projects-list")
|
url = reverse("projects-list")
|
||||||
data = {"name": "project name", "description": "project description"}
|
data = {"name": "project name", "description": "project description"}
|
||||||
|
|
||||||
|
@ -21,7 +19,6 @@ def test_api_create_project(client):
|
||||||
|
|
||||||
|
|
||||||
def test_api_partially_update_project(client):
|
def test_api_partially_update_project(client):
|
||||||
f.ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
|
|
||||||
project = f.create_project()
|
project = f.create_project()
|
||||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||||
data = {"name": ""}
|
data = {"name": ""}
|
||||||
|
|
Loading…
Reference in New Issue