Create membership for user creating project <=> role exists

remotes/origin/enhancement/email-actions
Anler Hp 2014-08-07 16:25:45 +02:00
parent 08ca07454a
commit 47a28cc3dc
3 changed files with 19 additions and 7 deletions

View File

@ -752,5 +752,9 @@ def project_post_save(sender, instance, created, **kwargs):
instance.save()
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)
try:
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

View File

@ -20,9 +20,9 @@ import threading
from datetime import date, timedelta
from django.db.models.loading import get_model
from django.conf import settings
import factory
from django.conf import settings
class Factory(factory.DjangoModelFactory):
@ -54,6 +54,7 @@ class ProjectTemplateFactory(Factory):
priorities = []
severities = []
roles = []
default_owner_role = "tester"
class ProjectFactory(Factory):
@ -70,6 +71,7 @@ class RoleFactory(Factory):
FACTORY_FOR = get_model("users", "Role")
name = "Tester"
slug = "tester"
project = factory.SubFactory("tests.factories.ProjectFactory")
@ -393,6 +395,8 @@ def create_project(**kwargs):
defaults = {}
defaults.update(kwargs)
ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
project = ProjectFactory.create(**defaults)
project.default_issue_status = IssueStatusFactory.create(project=project)
project.default_severity = SeverityFactory.create(project=project)
@ -404,3 +408,10 @@ def create_project(**kwargs):
project.save()
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)

View File

@ -1,6 +1,5 @@
import pytest
from django.conf import settings
from django.core.urlresolvers import reverse
from .. import factories as f
@ -9,8 +8,7 @@ pytestmark = pytest.mark.django_db
def test_api_create_project(client):
f.ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
user = f.UserFactory.create()
user = f.create_user()
url = reverse("projects-list")
data = {"name": "project name", "description": "project description"}
@ -21,7 +19,6 @@ def test_api_create_project(client):
def test_api_partially_update_project(client):
f.ProjectTemplateFactory.create(slug=settings.DEFAULT_PROJECT_TEMPLATE)
project = f.create_project()
url = reverse("projects-detail", kwargs={"pk": project.pk})
data = {"name": ""}