Merge pull request #623 from taigaio/refactor/is_owner_to_is_admin
Change membership.is_owner to membership.is_adminremotes/origin/issue/4795/notification_even_they_are_disabled
commit
8f55c5217c
|
@ -14,6 +14,7 @@
|
|||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import logging
|
||||
|
||||
from django.apps import apps
|
||||
|
@ -141,7 +142,7 @@ class PermissionBasedFilterBackend(FilterBackend):
|
|||
if project_id:
|
||||
memberships_qs = memberships_qs.filter(project_id=project_id)
|
||||
memberships_qs = memberships_qs.filter(Q(role__permissions__contains=[self.permission]) |
|
||||
Q(is_owner=True))
|
||||
Q(is_admin=True))
|
||||
|
||||
projects_list = [membership.project_id for membership in memberships_qs]
|
||||
|
||||
|
@ -242,7 +243,7 @@ class MembersFilterBackend(PermissionBasedFilterBackend):
|
|||
if project_id:
|
||||
memberships_qs = memberships_qs.filter(project_id=project_id)
|
||||
memberships_qs = memberships_qs.filter(Q(role__permissions__contains=[self.permission]) |
|
||||
Q(is_owner=True))
|
||||
Q(is_admin=True))
|
||||
|
||||
projects_list = [membership.project_id for membership in memberships_qs]
|
||||
|
||||
|
@ -286,7 +287,7 @@ class BaseIsProjectAdminFilterBackend(object):
|
|||
return []
|
||||
|
||||
membership_model = apps.get_model('projects', 'Membership')
|
||||
memberships_qs = membership_model.objects.filter(user=request.user, is_owner=True)
|
||||
memberships_qs = membership_model.objects.filter(user=request.user, is_admin=True)
|
||||
if project_id:
|
||||
memberships_qs = memberships_qs.filter(project_id=project_id)
|
||||
|
||||
|
|
|
@ -127,7 +127,7 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
|
|||
|
||||
try:
|
||||
owner_membership = project_serialized.object.memberships.get(user=project_serialized.object.owner)
|
||||
owner_membership.is_owner = True
|
||||
owner_membership.is_admin = True
|
||||
owner_membership.save()
|
||||
except Membership.DoesNotExist:
|
||||
Membership.objects.create(
|
||||
|
@ -135,7 +135,7 @@ class ProjectImporterViewSet(mixins.ImportThrottlingPolicyMixin, CreateModelMixi
|
|||
email=project_serialized.object.owner.email,
|
||||
user=project_serialized.object.owner,
|
||||
role=project_serialized.object.roles.all().first(),
|
||||
is_owner=True
|
||||
is_admin=True
|
||||
)
|
||||
|
||||
# Create project values choicess
|
||||
|
|
|
@ -147,7 +147,7 @@ def dict_to_project(data, owner=None):
|
|||
email=proj.owner.email,
|
||||
user=proj.owner,
|
||||
role=proj.roles.all().first(),
|
||||
is_owner=True
|
||||
is_admin=True
|
||||
)
|
||||
|
||||
if service.get_errors(clear=False):
|
||||
|
|
|
@ -82,7 +82,7 @@ MEMBERS_PERMISSIONS = [
|
|||
('delete_wiki_link', _('Delete wiki link')),
|
||||
]
|
||||
|
||||
OWNERS_PERMISSIONS = [
|
||||
ADMINS_PERMISSIONS = [
|
||||
('modify_project', _('Modify project')),
|
||||
('add_member', _('Add member')),
|
||||
('remove_member', _('Remove member')),
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from .permissions import OWNERS_PERMISSIONS, MEMBERS_PERMISSIONS, ANON_PERMISSIONS, USER_PERMISSIONS
|
||||
from .permissions import ADMINS_PERMISSIONS, MEMBERS_PERMISSIONS, ANON_PERMISSIONS, USER_PERMISSIONS
|
||||
|
||||
from django.apps import apps
|
||||
|
||||
|
@ -46,7 +46,7 @@ def is_project_owner(user, obj):
|
|||
return False
|
||||
|
||||
membership = _get_user_project_membership(user, project)
|
||||
if membership and membership.is_owner:
|
||||
if membership and membership.is_admin:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
@ -74,43 +74,41 @@ def _get_membership_permissions(membership):
|
|||
def get_user_project_permissions(user, project):
|
||||
membership = _get_user_project_membership(user, project)
|
||||
if user.is_superuser:
|
||||
owner_permissions = list(map(lambda perm: perm[0], OWNERS_PERMISSIONS))
|
||||
admins_permissions = list(map(lambda perm: perm[0], ADMINS_PERMISSIONS))
|
||||
members_permissions = list(map(lambda perm: perm[0], MEMBERS_PERMISSIONS))
|
||||
public_permissions = list(map(lambda perm: perm[0], USER_PERMISSIONS))
|
||||
anon_permissions = list(map(lambda perm: perm[0], ANON_PERMISSIONS))
|
||||
elif membership:
|
||||
if membership.is_owner:
|
||||
owner_permissions = list(map(lambda perm: perm[0], OWNERS_PERMISSIONS))
|
||||
if membership.is_admin:
|
||||
admins_permissions = list(map(lambda perm: perm[0], ADMINS_PERMISSIONS))
|
||||
members_permissions = list(map(lambda perm: perm[0], MEMBERS_PERMISSIONS))
|
||||
else:
|
||||
owner_permissions = []
|
||||
admins_permissions = []
|
||||
members_permissions = []
|
||||
members_permissions = members_permissions + _get_membership_permissions(membership)
|
||||
public_permissions = project.public_permissions if project.public_permissions is not None else []
|
||||
anon_permissions = project.anon_permissions if project.anon_permissions is not None else []
|
||||
elif user.is_authenticated():
|
||||
owner_permissions = []
|
||||
admins_permissions = []
|
||||
members_permissions = []
|
||||
public_permissions = project.public_permissions if project.public_permissions is not None else []
|
||||
anon_permissions = project.anon_permissions if project.anon_permissions is not None else []
|
||||
else:
|
||||
owner_permissions = []
|
||||
admins_permissions = []
|
||||
members_permissions = []
|
||||
public_permissions = []
|
||||
anon_permissions = project.anon_permissions if project.anon_permissions is not None else []
|
||||
|
||||
return set(owner_permissions + members_permissions + public_permissions + anon_permissions)
|
||||
return set(admins_permissions + members_permissions + public_permissions + anon_permissions)
|
||||
|
||||
|
||||
def set_base_permissions_for_project(project):
|
||||
if project.is_private:
|
||||
project.anon_permissions = []
|
||||
project.public_permissions = []
|
||||
|
||||
else:
|
||||
"""
|
||||
If a project is public anonymous and registered users should have at least visualization permissions
|
||||
"""
|
||||
# If a project is public anonymous and registered users should have at
|
||||
# least visualization permissions.
|
||||
anon_permissions = list(map(lambda perm: perm[0], ANON_PERMISSIONS))
|
||||
project.anon_permissions = list(set((project.anon_permissions or []) + anon_permissions))
|
||||
project.public_permissions = list(set((project.public_permissions or []) + anon_permissions))
|
||||
|
|
|
@ -353,7 +353,7 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin,
|
|||
|
||||
# Check the user is an admin membership from the project
|
||||
try:
|
||||
project.memberships.get(is_owner=True, user=user)
|
||||
project.memberships.get(is_admin=True, user=user)
|
||||
except apps.get_model("projects", "Membership").DoesNotExist:
|
||||
return response.BadRequest(_("The user must be an admin member of the project"))
|
||||
|
||||
|
@ -432,7 +432,7 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin,
|
|||
|
||||
self.pre_delete(obj)
|
||||
self.pre_conditions_on_delete(obj)
|
||||
obj.delete_related_content()
|
||||
obj.delete_related_content()
|
||||
obj.delete()
|
||||
self.post_delete(obj)
|
||||
return response.NoContent()
|
||||
|
|
|
@ -70,7 +70,7 @@ class CanViewProjectObjFilterBackend(FilterBackend):
|
|||
if project_id:
|
||||
memberships_qs = memberships_qs.filter(project_id=project_id)
|
||||
memberships_qs = memberships_qs.filter(Q(role__permissions__contains=['view_project']) |
|
||||
Q(is_owner=True))
|
||||
Q(is_admin=True))
|
||||
|
||||
projects_list = [membership.project_id for membership in memberships_qs]
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ class Command(BaseCommand):
|
|||
Membership.objects.create(email=user.email,
|
||||
project=project,
|
||||
role=role,
|
||||
is_owner=self.sd.boolean(),
|
||||
is_admin=self.sd.boolean(),
|
||||
user=user)
|
||||
|
||||
if role.computable:
|
||||
|
@ -163,7 +163,7 @@ class Command(BaseCommand):
|
|||
Membership.objects.create(email=self.sd.email(),
|
||||
project=project,
|
||||
role=role,
|
||||
is_owner=self.sd.boolean(),
|
||||
is_admin=self.sd.boolean(),
|
||||
token=''.join(random.sample('abcdef0123456789', 10)))
|
||||
|
||||
if role.computable:
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.2 on 2016-02-15 11:33
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('projects', '0037_auto_20160208_1751'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='membership',
|
||||
old_name='is_owner',
|
||||
new_name='is_admin',
|
||||
),
|
||||
]
|
|
@ -70,7 +70,7 @@ class Membership(models.Model):
|
|||
related_name="memberships")
|
||||
role = models.ForeignKey("users.Role", null=False, blank=False,
|
||||
related_name="memberships")
|
||||
is_owner = models.BooleanField(default=False, null=False, blank=False)
|
||||
is_admin = models.BooleanField(default=False, null=False, blank=False)
|
||||
|
||||
# Invitation metadata
|
||||
email = models.EmailField(max_length=255, default=None, null=True, blank=True,
|
||||
|
|
|
@ -181,15 +181,14 @@ class MembershipSerializer(serializers.ModelSerializer):
|
|||
|
||||
return attrs
|
||||
|
||||
def validate_is_owner(self, attrs, source):
|
||||
is_owner = attrs[source]
|
||||
def validate_is_admin(self, attrs, source):
|
||||
project = attrs.get("project", None)
|
||||
if project is None:
|
||||
project = self.object.project
|
||||
|
||||
if (self.object and
|
||||
not services.project_has_valid_admins(project, exclude_user=self.object.user)):
|
||||
raise serializers.ValidationError(_("The project must have an owner and at least one of the users must be an active admin"))
|
||||
raise serializers.ValidationError(_("In this project at least one of the users must be an active admin."))
|
||||
|
||||
return attrs
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ def project_has_valid_admins(project, exclude_user=None):
|
|||
"""
|
||||
Checks if the project has any owner membership with a user different than the specified
|
||||
"""
|
||||
admin_memberships = project.memberships.filter(is_owner=True, user__is_active=True)
|
||||
admin_memberships = project.memberships.filter(is_admin=True, user__is_active=True)
|
||||
if exclude_user:
|
||||
admin_memberships = admin_memberships.exclude(user=exclude_user)
|
||||
|
||||
|
@ -49,7 +49,7 @@ def project_has_valid_admins(project, exclude_user=None):
|
|||
|
||||
def can_user_leave_project(user, project):
|
||||
membership = project.memberships.get(user=user)
|
||||
if not membership.is_owner:
|
||||
if not membership.is_admin:
|
||||
return True
|
||||
|
||||
#The user can't leave if is the real owner of the project
|
||||
|
|
|
@ -85,7 +85,7 @@ def project_post_save(sender, instance, created, **kwargs):
|
|||
if owner_role:
|
||||
Membership = apps.get_model("projects", "Membership")
|
||||
Membership.objects.create(user=instance.owner, project=instance, role=owner_role,
|
||||
is_owner=True, email=instance.owner.email)
|
||||
is_admin=True, email=instance.owner.email)
|
||||
|
||||
|
||||
## US statuses
|
||||
|
|
|
@ -123,7 +123,7 @@ def get_visible_project_ids(from_user, by_user):
|
|||
#- The to user is the owner
|
||||
member_perm_conditions |= \
|
||||
Q(project__id__in=by_user_project_ids, role__permissions__contains=required_permissions) |\
|
||||
Q(project__id__in=by_user_project_ids, is_owner=True)
|
||||
Q(project__id__in=by_user_project_ids, is_admin=True)
|
||||
|
||||
Membership = apps.get_model('projects', 'Membership')
|
||||
#Calculating the user memberships adding the permission filter for the by user
|
||||
|
|
|
@ -85,19 +85,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
return m
|
||||
|
||||
|
||||
|
|
|
@ -64,15 +64,15 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
return m
|
||||
|
||||
|
||||
|
|
|
@ -100,19 +100,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_issue_ca = f.IssueCustomAttributeFactory(project=m.public_project)
|
||||
m.private_issue_ca1 = f.IssueCustomAttributeFactory(project=m.private_project1)
|
||||
|
|
|
@ -90,19 +90,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_issue = f.IssueFactory(project=m.public_project,
|
||||
status__project=m.public_project,
|
||||
|
|
|
@ -82,19 +82,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_milestone = f.MilestoneFactory(project=m.public_project)
|
||||
m.private_milestone1 = f.MilestoneFactory(project=m.private_project1)
|
||||
|
|
|
@ -85,19 +85,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
return m
|
||||
|
||||
|
|
|
@ -78,19 +78,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_points = f.PointsFactory(project=m.public_project)
|
||||
m.private_points1 = f.PointsFactory(project=m.private_project1)
|
||||
|
|
|
@ -69,19 +69,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
ContentType = apps.get_model("contenttypes", "ContentType")
|
||||
Project = apps.get_model("projects", "Project")
|
||||
|
|
|
@ -66,15 +66,15 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.view_only_membership = f.MembershipFactory(project=m.private_project2,
|
||||
user=m.other_user,
|
||||
|
|
|
@ -63,15 +63,15 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_issue = f.IssueFactory(project=m.public_project,
|
||||
status__project=m.public_project,
|
||||
|
|
|
@ -100,19 +100,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_task_ca = f.TaskCustomAttributeFactory(project=m.public_project)
|
||||
m.private_task_ca1 = f.TaskCustomAttributeFactory(project=m.private_project1)
|
||||
|
|
|
@ -90,19 +90,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
milestone_public_task = f.MilestoneFactory(project=m.public_project)
|
||||
milestone_private_task1 = f.MilestoneFactory(project=m.private_project1)
|
||||
|
|
|
@ -63,15 +63,15 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
return m
|
||||
|
||||
|
||||
|
|
|
@ -101,19 +101,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_userstory_ca = f.UserStoryCustomAttributeFactory(project=m.public_project)
|
||||
m.private_userstory_ca1 = f.UserStoryCustomAttributeFactory(project=m.private_project1)
|
||||
|
|
|
@ -90,19 +90,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_points = f.PointsFactory(project=m.public_project)
|
||||
m.private_points1 = f.PointsFactory(project=m.private_project1)
|
||||
|
|
|
@ -45,10 +45,10 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.webhook1 = f.WebhookFactory(project=m.project1)
|
||||
m.webhooklog1 = f.WebhookLogFactory(webhook=m.webhook1)
|
||||
|
|
|
@ -84,19 +84,19 @@ def data():
|
|||
|
||||
f.MembershipFactory(project=m.public_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project1,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.private_project2,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=m.blocked_project,
|
||||
user=m.project_owner,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
m.public_wiki_page = f.WikiPageFactory(project=m.public_project)
|
||||
m.private_wiki_page1 = f.WikiPageFactory(project=m.private_project1)
|
||||
|
|
|
@ -13,7 +13,7 @@ def test_create_user_story_attachment_without_file(client):
|
|||
Bug test "Don't create attachments without attached_file"
|
||||
"""
|
||||
us = f.UserStoryFactory.create()
|
||||
f.MembershipFactory(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory(project=us.project, user=us.owner, is_admin=True)
|
||||
attachment_data = {
|
||||
"description": "test",
|
||||
"attached_file": None,
|
||||
|
@ -30,7 +30,7 @@ def test_create_user_story_attachment_without_file(client):
|
|||
def test_create_attachment_on_wrong_project(client):
|
||||
issue1 = f.create_issue()
|
||||
issue2 = f.create_issue(owner=issue1.owner)
|
||||
f.MembershipFactory(project=issue1.project, user=issue1.owner, is_owner=True)
|
||||
f.MembershipFactory(project=issue1.project, user=issue1.owner, is_admin=True)
|
||||
|
||||
assert issue1.owner == issue2.owner
|
||||
assert issue1.project.owner == issue2.project.owner
|
||||
|
@ -49,7 +49,7 @@ def test_create_attachment_on_wrong_project(client):
|
|||
|
||||
def test_create_attachment_with_long_file_name(client):
|
||||
issue1 = f.create_issue()
|
||||
f.MembershipFactory(project=issue1.project, user=issue1.owner, is_owner=True)
|
||||
f.MembershipFactory(project=issue1.project, user=issue1.owner, is_admin=True)
|
||||
|
||||
url = reverse("issue-attachments-list")
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ def test_issue_custom_attribute_duplicate_name_error_on_create(client):
|
|||
custom_attr_1 = f.IssueCustomAttributeFactory()
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("issue-custom-attributes-list")
|
||||
|
@ -51,7 +51,7 @@ def test_issue_custom_attribute_duplicate_name_error_on_update(client):
|
|||
custom_attr_2 = f.IssueCustomAttributeFactory(project=custom_attr_1.project)
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("issue-custom-attributes-detail", kwargs={"pk": custom_attr_2.pk})
|
||||
|
@ -67,10 +67,10 @@ def test_issue_custom_attribute_duplicate_name_error_on_move_between_projects(cl
|
|||
custom_attr_2 = f.IssueCustomAttributeFactory(name=custom_attr_1.name)
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_2.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("issue-custom-attributes-detail", kwargs={"pk": custom_attr_2.pk})
|
||||
|
@ -94,7 +94,7 @@ def test_issue_custom_attributes_values_update(client):
|
|||
issue = f.IssueFactory()
|
||||
member = f.MembershipFactory(user=issue.project.owner,
|
||||
project=issue.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.IssueCustomAttributeFactory(project=issue.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -126,7 +126,7 @@ def test_issue_custom_attributes_values_update_with_error_invalid_key(client):
|
|||
issue = f.IssueFactory()
|
||||
member = f.MembershipFactory(user=issue.project.owner,
|
||||
project=issue.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.IssueCustomAttributeFactory(project=issue.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -151,7 +151,7 @@ def test_issue_custom_attributes_values_delete_issue(client):
|
|||
issue = f.IssueFactory()
|
||||
member = f.MembershipFactory(user=issue.project.owner,
|
||||
project=issue.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.IssueCustomAttributeFactory(project=issue.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -177,7 +177,7 @@ def test_trigger_update_issuecustomvalues_afeter_remove_issuecustomattribute(cli
|
|||
issue = f.IssueFactory()
|
||||
member = f.MembershipFactory(user=issue.project.owner,
|
||||
project=issue.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
custom_attr_1 = f.IssueCustomAttributeFactory(project=issue.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
custom_attr_2 = f.IssueCustomAttributeFactory(project=issue.project)
|
||||
|
|
|
@ -33,7 +33,7 @@ def test_task_custom_attribute_duplicate_name_error_on_create(client):
|
|||
custom_attr_1 = f.TaskCustomAttributeFactory()
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("task-custom-attributes-list")
|
||||
|
@ -50,7 +50,7 @@ def test_task_custom_attribute_duplicate_name_error_on_update(client):
|
|||
custom_attr_2 = f.TaskCustomAttributeFactory(project=custom_attr_1.project)
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("task-custom-attributes-detail", kwargs={"pk": custom_attr_2.pk})
|
||||
|
@ -66,10 +66,10 @@ def test_task_custom_attribute_duplicate_name_error_on_move_between_projects(cli
|
|||
custom_attr_2 = f.TaskCustomAttributeFactory(name=custom_attr_1.name)
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_2.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("task-custom-attributes-detail", kwargs={"pk": custom_attr_2.pk})
|
||||
|
@ -93,7 +93,7 @@ def test_task_custom_attributes_values_update(client):
|
|||
task = f.TaskFactory()
|
||||
member = f.MembershipFactory(user=task.project.owner,
|
||||
project=task.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.TaskCustomAttributeFactory(project=task.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -124,7 +124,7 @@ def test_task_custom_attributes_values_update_with_error_invalid_key(client):
|
|||
task = f.TaskFactory()
|
||||
member = f.MembershipFactory(user=task.project.owner,
|
||||
project=task.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.TaskCustomAttributeFactory(project=task.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -151,7 +151,7 @@ def test_task_custom_attributes_values_delete_task(client):
|
|||
task = f.TaskFactory()
|
||||
member = f.MembershipFactory(user=task.project.owner,
|
||||
project=task.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.TaskCustomAttributeFactory(project=task.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -177,7 +177,7 @@ def test_trigger_update_taskcustomvalues_afeter_remove_taskcustomattribute(clien
|
|||
task = f.TaskFactory()
|
||||
member = f.MembershipFactory(user=task.project.owner,
|
||||
project=task.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.TaskCustomAttributeFactory(project=task.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
|
|
@ -33,7 +33,7 @@ def test_userstory_custom_attribute_duplicate_name_error_on_create(client):
|
|||
custom_attr_1 = f.UserStoryCustomAttributeFactory()
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("userstory-custom-attributes-list")
|
||||
|
@ -50,7 +50,7 @@ def test_userstory_custom_attribute_duplicate_name_error_on_update(client):
|
|||
custom_attr_2 = f.UserStoryCustomAttributeFactory(project=custom_attr_1.project)
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("userstory-custom-attributes-detail", kwargs={"pk": custom_attr_2.pk})
|
||||
|
@ -66,10 +66,10 @@ def test_userstory_custom_attribute_duplicate_name_error_on_move_between_project
|
|||
custom_attr_2 = f.UserStoryCustomAttributeFactory(name=custom_attr_1.name)
|
||||
member = f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_1.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
f.MembershipFactory(user=custom_attr_1.project.owner,
|
||||
project=custom_attr_2.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
|
||||
url = reverse("userstory-custom-attributes-detail", kwargs={"pk": custom_attr_2.pk})
|
||||
|
@ -93,7 +93,7 @@ def test_userstory_custom_attributes_values_update(client):
|
|||
user_story = f.UserStoryFactory()
|
||||
member = f.MembershipFactory(user=user_story.project.owner,
|
||||
project=user_story.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.UserStoryCustomAttributeFactory(project=user_story.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -124,7 +124,7 @@ def test_userstory_custom_attributes_values_update_with_error_invalid_key(client
|
|||
user_story = f.UserStoryFactory()
|
||||
member = f.MembershipFactory(user=user_story.project.owner,
|
||||
project=user_story.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.UserStoryCustomAttributeFactory(project=user_story.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
@ -155,7 +155,7 @@ def test_trigger_update_userstorycustomvalues_afeter_remove_userstorycustomattri
|
|||
user_story = f.UserStoryFactory()
|
||||
member = f.MembershipFactory(user=user_story.project.owner,
|
||||
project=user_story.project,
|
||||
is_owner=True)
|
||||
is_admin=True)
|
||||
|
||||
custom_attr_1 = f.UserStoryCustomAttributeFactory(project=user_story.project)
|
||||
ct1_id = "{}".format(custom_attr_1.id)
|
||||
|
|
|
@ -43,7 +43,7 @@ def test_valid_project_export_with_celery_disabled(client, settings):
|
|||
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("exporter-detail", args=[project.pk])
|
||||
|
@ -59,7 +59,7 @@ def test_valid_project_export_with_celery_enabled(client, settings):
|
|||
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("exporter-detail", args=[project.pk])
|
||||
|
@ -82,7 +82,7 @@ def test_valid_project_with_throttling(client, settings):
|
|||
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("exporter-detail", args=[project.pk])
|
||||
|
|
|
@ -27,7 +27,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_like_project(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-like", args=(project.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -39,7 +39,7 @@ def test_like_project(client):
|
|||
def test_unlike_project(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-unlike", args=(project.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -51,7 +51,7 @@ def test_unlike_project(client):
|
|||
def test_list_project_fans(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
f.LikeFactory.create(content_object=project, user=user)
|
||||
url = reverse("project-fans-list", args=(project.id,))
|
||||
|
||||
|
@ -65,7 +65,7 @@ def test_list_project_fans(client):
|
|||
def test_get_project_fan(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
like = f.LikeFactory.create(content_object=project, user=user)
|
||||
url = reverse("project-fans-detail", args=(project.id, like.user.id))
|
||||
|
||||
|
@ -79,7 +79,7 @@ def test_get_project_fan(client):
|
|||
def test_get_project_is_fan(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url_detail = reverse("projects-detail", args=(project.id,))
|
||||
url_like = reverse("projects-like", args=(project.id,))
|
||||
url_unlike = reverse("projects-unlike", args=(project.id,))
|
||||
|
|
|
@ -144,7 +144,7 @@ def test_issue_resource_history_test(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
role = f.RoleFactory.create(project=project)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
issue = f.IssueFactory.create(owner=user, project=project)
|
||||
|
||||
mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save"
|
||||
|
@ -201,7 +201,7 @@ def test_take_hidden_snapshot():
|
|||
def test_history_with_only_comment_shouldnot_be_hidden(client):
|
||||
project = f.create_project()
|
||||
us = f.create_userstory(project=project, status__project=project)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
qs_all = HistoryEntry.objects.all()
|
||||
qs_hidden = qs_all.filter(is_hidden=True)
|
||||
|
@ -222,7 +222,7 @@ def test_history_with_only_comment_shouldnot_be_hidden(client):
|
|||
def test_delete_comment_by_project_owner(client):
|
||||
project = f.create_project()
|
||||
us = f.create_userstory(project=project)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
key = make_key_from_model_object(us)
|
||||
history_entry = f.HistoryEntryFactory.create(type=HistoryType.change,
|
||||
comment="testing",
|
||||
|
|
|
@ -345,7 +345,7 @@ def test_issues_event_opened_issue(client):
|
|||
issue.project.default_severity = issue.severity
|
||||
issue.project.default_priority = issue.priority
|
||||
issue.project.save()
|
||||
Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_owner=True)
|
||||
Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_admin=True)
|
||||
notify_policy = NotifyPolicy.objects.get(user=issue.owner, project=issue.project)
|
||||
notify_policy.notify_level = NotifyLevel.all
|
||||
notify_policy.save()
|
||||
|
@ -551,7 +551,7 @@ def test_issues_event_bad_comment(client):
|
|||
|
||||
def test_api_get_project_modules(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("projects-modules", args=(project.id,))
|
||||
|
||||
|
@ -566,7 +566,7 @@ def test_api_get_project_modules(client):
|
|||
|
||||
def test_api_patch_project_modules(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("projects-modules", args=(project.id,))
|
||||
|
||||
|
|
|
@ -260,7 +260,7 @@ def test_issues_event_opened_issue(client):
|
|||
issue.project.default_severity = issue.severity
|
||||
issue.project.default_priority = issue.priority
|
||||
issue.project.save()
|
||||
Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_owner=True)
|
||||
Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_admin=True)
|
||||
notify_policy = NotifyPolicy.objects.get(user=issue.owner, project=issue.project)
|
||||
notify_policy.notify_level = NotifyLevel.all
|
||||
notify_policy.save()
|
||||
|
@ -457,7 +457,7 @@ def test_issues_event_bad_comment(client):
|
|||
|
||||
def test_api_get_project_modules(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("projects-modules", args=(project.id,))
|
||||
|
||||
|
@ -472,7 +472,7 @@ def test_api_get_project_modules(client):
|
|||
|
||||
def test_api_patch_project_modules(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("projects-modules", args=(project.id,))
|
||||
|
||||
|
|
|
@ -408,7 +408,7 @@ def test_issues_event_opened_issue(client):
|
|||
issue.project.default_severity = issue.severity
|
||||
issue.project.default_priority = issue.priority
|
||||
issue.project.save()
|
||||
Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_owner=True)
|
||||
Membership.objects.create(user=issue.owner, project=issue.project, role=f.RoleFactory.create(project=issue.project), is_admin=True)
|
||||
notify_policy = NotifyPolicy.objects.get(user=issue.owner, project=issue.project)
|
||||
notify_policy.notify_level = NotifyLevel.all
|
||||
notify_policy.save()
|
||||
|
@ -616,7 +616,7 @@ def test_issues_event_bad_comment(client):
|
|||
|
||||
def test_api_get_project_modules(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("projects-modules", args=(project.id,))
|
||||
|
||||
|
@ -631,7 +631,7 @@ def test_api_get_project_modules(client):
|
|||
|
||||
def test_api_patch_project_modules(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("projects-modules", args=(project.id,))
|
||||
|
||||
|
|
|
@ -360,7 +360,7 @@ def test_invalid_project_import_with_custom_attributes(client):
|
|||
def test_invalid_issue_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-issue", args=[project.pk])
|
||||
|
@ -373,7 +373,7 @@ def test_invalid_issue_import(client):
|
|||
def test_valid_user_story_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_us_status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -394,7 +394,7 @@ def test_valid_user_story_import(client):
|
|||
def test_valid_user_story_import_with_custom_attributes_values(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
membership = f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
membership = f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_us_status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.save()
|
||||
custom_attr = f.UserStoryCustomAttributeFactory(project=project)
|
||||
|
@ -418,7 +418,7 @@ def test_valid_user_story_import_with_custom_attributes_values(client):
|
|||
def test_valid_issue_import_without_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_issue_type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = f.IssueStatusFactory.create(project=project)
|
||||
project.default_severity = f.SeverityFactory.create(project=project)
|
||||
|
@ -441,7 +441,7 @@ def test_valid_issue_import_without_extra_data(client):
|
|||
def test_valid_issue_import_with_custom_attributes_values(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
membership = f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
membership = f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_issue_type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = f.IssueStatusFactory.create(project=project)
|
||||
project.default_severity = f.SeverityFactory.create(project=project)
|
||||
|
@ -469,7 +469,7 @@ def test_valid_issue_import_with_extra_data(client):
|
|||
user = f.UserFactory.create()
|
||||
user_watching = f.UserFactory.create(email="testing@taiga.io")
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_issue_type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = f.IssueStatusFactory.create(project=project)
|
||||
project.default_severity = f.SeverityFactory.create(project=project)
|
||||
|
@ -505,7 +505,7 @@ def test_valid_issue_import_with_extra_data(client):
|
|||
def test_invalid_issue_import_with_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_issue_type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = f.IssueStatusFactory.create(project=project)
|
||||
project.default_severity = f.SeverityFactory.create(project=project)
|
||||
|
@ -530,7 +530,7 @@ def test_invalid_issue_import_with_extra_data(client):
|
|||
def test_invalid_issue_import_with_bad_choices(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_issue_type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = f.IssueStatusFactory.create(project=project)
|
||||
project.default_severity = f.SeverityFactory.create(project=project)
|
||||
|
@ -590,7 +590,7 @@ def test_invalid_issue_import_with_bad_choices(client):
|
|||
def test_invalid_us_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-us", args=[project.pk])
|
||||
|
@ -603,7 +603,7 @@ def test_invalid_us_import(client):
|
|||
def test_valid_us_import_without_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_us_status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -624,7 +624,7 @@ def test_valid_us_import_with_extra_data(client):
|
|||
user = f.UserFactory.create()
|
||||
user_watching = f.UserFactory.create(email="testing@taiga.io")
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_us_status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -655,7 +655,7 @@ def test_valid_us_import_with_extra_data(client):
|
|||
def test_invalid_us_import_with_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_us_status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -677,7 +677,7 @@ def test_invalid_us_import_with_extra_data(client):
|
|||
def test_invalid_us_import_with_bad_choices(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_us_status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -698,7 +698,7 @@ def test_invalid_us_import_with_bad_choices(client):
|
|||
def test_invalid_task_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-task", args=[project.pk])
|
||||
|
@ -711,7 +711,7 @@ def test_invalid_task_import(client):
|
|||
def test_valid_task_import_without_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_task_status = f.TaskStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -731,7 +731,7 @@ def test_valid_task_import_without_extra_data(client):
|
|||
def test_valid_task_import_with_custom_attributes_values(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
membership = f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
membership = f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_task_status = f.TaskStatusFactory.create(project=project)
|
||||
project.save()
|
||||
custom_attr = f.TaskCustomAttributeFactory(project=project)
|
||||
|
@ -756,7 +756,7 @@ def test_valid_task_import_with_extra_data(client):
|
|||
user = f.UserFactory.create()
|
||||
user_watching = f.UserFactory.create(email="testing@taiga.io")
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_task_status = f.TaskStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -787,7 +787,7 @@ def test_valid_task_import_with_extra_data(client):
|
|||
def test_invalid_task_import_with_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_task_status = f.TaskStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -809,7 +809,7 @@ def test_invalid_task_import_with_extra_data(client):
|
|||
def test_invalid_task_import_with_bad_choices(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_task_status = f.TaskStatusFactory.create(project=project)
|
||||
project.save()
|
||||
client.login(user)
|
||||
|
@ -830,7 +830,7 @@ def test_invalid_task_import_with_bad_choices(client):
|
|||
def test_valid_task_with_user_story(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
project.default_task_status = f.TaskStatusFactory.create(project=project)
|
||||
us = f.UserStoryFactory.create(project=project)
|
||||
project.save()
|
||||
|
@ -851,7 +851,7 @@ def test_valid_task_with_user_story(client):
|
|||
def test_invalid_wiki_page_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-wiki-page", args=[project.pk])
|
||||
|
@ -864,7 +864,7 @@ def test_invalid_wiki_page_import(client):
|
|||
def test_valid_wiki_page_import_without_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-wiki-page", args=[project.pk])
|
||||
|
@ -882,7 +882,7 @@ def test_valid_wiki_page_import_with_extra_data(client):
|
|||
user = f.UserFactory.create()
|
||||
user_watching = f.UserFactory.create(email="testing@taiga.io")
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-wiki-page", args=[project.pk])
|
||||
|
@ -910,7 +910,7 @@ def test_valid_wiki_page_import_with_extra_data(client):
|
|||
def test_invalid_wiki_page_import_with_extra_data(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-wiki-page", args=[project.pk])
|
||||
|
@ -930,7 +930,7 @@ def test_invalid_wiki_page_import_with_extra_data(client):
|
|||
def test_invalid_wiki_link_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-wiki-link", args=[project.pk])
|
||||
|
@ -943,7 +943,7 @@ def test_invalid_wiki_link_import(client):
|
|||
def test_valid_wiki_link_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-wiki-link", args=[project.pk])
|
||||
|
@ -961,7 +961,7 @@ def test_valid_wiki_link_import(client):
|
|||
def test_invalid_milestone_import(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-milestone", args=[project.pk])
|
||||
|
@ -975,7 +975,7 @@ def test_valid_milestone_import(client):
|
|||
user = f.UserFactory.create()
|
||||
user_watching = f.UserFactory.create(email="testing@taiga.io")
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-milestone", args=[project.pk])
|
||||
|
@ -993,7 +993,7 @@ def test_valid_milestone_import(client):
|
|||
def test_milestone_import_duplicated_milestone(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("importer-milestone", args=[project.pk])
|
||||
|
|
|
@ -58,7 +58,7 @@ def test_create_issue_without_status(client):
|
|||
project.default_severity = severity
|
||||
project.default_issue_type = type
|
||||
project.save()
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("issues-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
|
@ -79,7 +79,7 @@ def test_create_issue_without_status_in_project_without_default_values(client):
|
|||
default_severity=None,
|
||||
default_issue_type = None)
|
||||
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("issues-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
|
@ -94,7 +94,7 @@ def test_create_issue_without_status_in_project_without_default_values(client):
|
|||
|
||||
def test_api_create_issues_in_bulk(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("issues-bulk-create")
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ def test_api_create_bulk_members(client):
|
|||
joseph = f.UserFactory.create()
|
||||
tester = f.RoleFactory(project=project, name="Tester")
|
||||
gamer = f.RoleFactory(project=project, name="Gamer")
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
url = reverse("memberships-bulk-create")
|
||||
|
||||
|
@ -57,7 +57,7 @@ def test_api_create_bulk_members_without_enough_memberships_private_project_slot
|
|||
user = f.UserFactory.create(max_members_private_projects=3)
|
||||
project = f.ProjectFactory(owner=user, is_private=True)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
url = reverse("memberships-bulk-create")
|
||||
|
||||
|
@ -81,7 +81,7 @@ def test_api_create_bulk_members_with_enough_memberships_private_project_slots_m
|
|||
user = f.UserFactory.create(max_members_private_projects=6)
|
||||
project = f.ProjectFactory(owner=user, is_private=True)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
other_project = f.ProjectFactory(owner=user)
|
||||
f.MembershipFactory.create(project=other_project)
|
||||
|
@ -110,7 +110,7 @@ def test_api_create_bulk_members_without_enough_memberships_public_project_slots
|
|||
user = f.UserFactory.create(max_members_public_projects=3)
|
||||
project = f.ProjectFactory(owner=user, is_private=False)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
url = reverse("memberships-bulk-create")
|
||||
|
||||
|
@ -134,7 +134,7 @@ def test_api_create_bulk_members_with_enough_memberships_public_project_slots_mu
|
|||
user = f.UserFactory.create(max_members_public_projects=6)
|
||||
project = f.ProjectFactory(owner=user, is_private=False)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
other_project = f.ProjectFactory(owner=user)
|
||||
f.MembershipFactory.create(project=other_project)
|
||||
|
@ -162,7 +162,7 @@ def test_api_create_bulk_members_with_enough_memberships_public_project_slots_mu
|
|||
def test_api_create_bulk_members_with_extra_text(client, outbox):
|
||||
project = f.ProjectFactory()
|
||||
tester = f.RoleFactory(project=project, name="Tester")
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=project.owner, is_admin=True)
|
||||
url = reverse("memberships-bulk-create")
|
||||
|
||||
invitation_extra_text = "this is a not so random invitation text"
|
||||
|
@ -187,7 +187,7 @@ def test_api_create_bulk_members_with_extra_text(client, outbox):
|
|||
|
||||
def test_api_resend_invitation(client, outbox):
|
||||
invitation = f.create_invitation(user=None)
|
||||
f.MembershipFactory(project=invitation.project, user=invitation.project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=invitation.project, user=invitation.project.owner, is_admin=True)
|
||||
url = reverse("memberships-resend-invitation", kwargs={"pk": invitation.pk})
|
||||
|
||||
client.login(invitation.project.owner)
|
||||
|
@ -202,7 +202,7 @@ def test_api_invite_existing_user(client, outbox):
|
|||
"Should create the invitation linked to that user"
|
||||
user = f.UserFactory.create()
|
||||
role = f.RoleFactory.create()
|
||||
f.MembershipFactory(project=role.project, user=role.project.owner, is_owner=True)
|
||||
f.MembershipFactory(project=role.project, user=role.project.owner, is_admin=True)
|
||||
|
||||
client.login(role.project.owner)
|
||||
|
||||
|
@ -255,7 +255,7 @@ def test_api_create_invalid_membership_role_doesnt_exist_in_the_project(client):
|
|||
|
||||
|
||||
def test_api_create_membership(client):
|
||||
membership = f.MembershipFactory(is_owner=True)
|
||||
membership = f.MembershipFactory(is_admin=True)
|
||||
role = f.RoleFactory.create(project=membership.project)
|
||||
user = f.UserFactory.create()
|
||||
|
||||
|
@ -272,7 +272,7 @@ def test_api_create_membership_without_enough_memberships_private_project_slots_
|
|||
user = f.UserFactory.create(max_members_private_projects=1)
|
||||
project = f.ProjectFactory(owner=user, is_private=True)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
client.login(user)
|
||||
url = reverse("memberships-list")
|
||||
|
@ -287,7 +287,7 @@ def test_api_create_membership_with_enough_memberships_private_project_slots_mul
|
|||
user = f.UserFactory.create(max_members_private_projects=5)
|
||||
project = f.ProjectFactory(owner=user, is_private=True)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
other_project = f.ProjectFactory(owner=user)
|
||||
f.MembershipFactory.create(project=other_project)
|
||||
|
@ -307,7 +307,7 @@ def test_api_create_membership_without_enough_memberships_public_project_slots_o
|
|||
user = f.UserFactory.create(max_members_public_projects=1)
|
||||
project = f.ProjectFactory(owner=user, is_private=False)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
client.login(user)
|
||||
url = reverse("memberships-list")
|
||||
|
@ -322,7 +322,7 @@ def test_api_create_membership_with_enough_memberships_public_project_slots_mult
|
|||
user = f.UserFactory.create(max_members_public_projects=5)
|
||||
project = f.ProjectFactory(owner=user, is_private=False)
|
||||
role = f.RoleFactory(project=project, name="Test")
|
||||
f.MembershipFactory(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||
|
||||
other_project = f.ProjectFactory(owner=user)
|
||||
f.MembershipFactory.create(project=other_project)
|
||||
|
@ -339,7 +339,7 @@ def test_api_create_membership_with_enough_memberships_public_project_slots_mult
|
|||
|
||||
|
||||
def test_api_edit_membership(client):
|
||||
membership = f.MembershipFactory(is_owner=True)
|
||||
membership = f.MembershipFactory(is_admin=True)
|
||||
client.login(membership.user)
|
||||
url = reverse("memberships-detail", args=[membership.id])
|
||||
data = {"email": "new@email.com"}
|
||||
|
@ -349,14 +349,14 @@ def test_api_edit_membership(client):
|
|||
|
||||
|
||||
def test_api_delete_membership(client):
|
||||
membership = f.MembershipFactory(is_owner=True)
|
||||
membership = f.MembershipFactory(is_admin=True)
|
||||
client.login(membership.user)
|
||||
url = reverse("memberships-detail", args=[membership.id])
|
||||
response = client.json.delete(url)
|
||||
|
||||
assert response.status_code == 400
|
||||
|
||||
f.MembershipFactory(is_owner=True, project=membership.project)
|
||||
f.MembershipFactory(is_admin=True, project=membership.project)
|
||||
|
||||
url = reverse("memberships-detail", args=[membership.id])
|
||||
response = client.json.delete(url)
|
||||
|
@ -365,7 +365,7 @@ def test_api_delete_membership(client):
|
|||
|
||||
|
||||
def test_api_delete_membership_without_user(client):
|
||||
membership_owner = f.MembershipFactory(is_owner=True)
|
||||
membership_owner = f.MembershipFactory(is_admin=True)
|
||||
membership_without_user_one = f.MembershipFactory(project=membership_owner.project, user=None)
|
||||
f.MembershipFactory(project=membership_owner.project, user=None)
|
||||
client.login(membership_owner.user)
|
||||
|
|
|
@ -33,7 +33,7 @@ def test_update_milestone_with_userstories_list(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
role = f.RoleFactory.create(project=project)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
sprint = f.MilestoneFactory.create(project=project, owner=user)
|
||||
f.PointsFactory.create(project=project, value=None)
|
||||
us = f.UserStoryFactory.create(project=project, owner=user)
|
||||
|
@ -54,7 +54,7 @@ def test_list_milestones_taiga_info_headers(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
role = f.RoleFactory.create(project=project)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
|
||||
f.MilestoneFactory.create(project=project, owner=user, closed=True)
|
||||
f.MilestoneFactory.create(project=project, owner=user, closed=True)
|
||||
|
|
|
@ -720,7 +720,7 @@ def test_resource_notification_test(client, settings, mail):
|
|||
user2 = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user1)
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_issues"])
|
||||
f.MembershipFactory.create(project=project, user=user1, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user1, role=role, is_admin=True)
|
||||
f.MembershipFactory.create(project=project, user=user2, role=role)
|
||||
issue = f.IssueFactory.create(owner=user2, project=project)
|
||||
|
||||
|
@ -758,7 +758,7 @@ def test_watchers_assignation_for_issue(client):
|
|||
project2 = f.ProjectFactory.create(owner=user2)
|
||||
role1 = f.RoleFactory.create(project=project1)
|
||||
role2 = f.RoleFactory.create(project=project2)
|
||||
f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True)
|
||||
f.MembershipFactory.create(project=project1, user=user1, role=role1, is_admin=True)
|
||||
f.MembershipFactory.create(project=project2, user=user2, role=role2)
|
||||
|
||||
client.login(user1)
|
||||
|
@ -810,7 +810,7 @@ def test_watchers_assignation_for_task(client):
|
|||
project2 = f.ProjectFactory.create(owner=user2)
|
||||
role1 = f.RoleFactory.create(project=project1, permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
||||
role2 = f.RoleFactory.create(project=project2)
|
||||
f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True)
|
||||
f.MembershipFactory.create(project=project1, user=user1, role=role1, is_admin=True)
|
||||
f.MembershipFactory.create(project=project2, user=user2, role=role2)
|
||||
|
||||
client.login(user1)
|
||||
|
@ -862,7 +862,7 @@ def test_watchers_assignation_for_us(client):
|
|||
project2 = f.ProjectFactory.create(owner=user2)
|
||||
role1 = f.RoleFactory.create(project=project1)
|
||||
role2 = f.RoleFactory.create(project=project2)
|
||||
f.MembershipFactory.create(project=project1, user=user1, role=role1, is_owner=True)
|
||||
f.MembershipFactory.create(project=project1, user=user1, role=role1, is_admin=True)
|
||||
f.MembershipFactory.create(project=project2, user=user2, role=role2)
|
||||
|
||||
client.login(user1)
|
||||
|
|
|
@ -30,7 +30,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_valid_us_creation(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
|
||||
client.login(user)
|
||||
|
||||
|
@ -47,7 +47,7 @@ def test_valid_us_creation(client):
|
|||
def test_invalid_concurrent_save_for_issue(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save"
|
||||
|
@ -76,7 +76,7 @@ def test_invalid_concurrent_save_for_issue(client):
|
|||
def test_valid_concurrent_save_for_issue_different_versions(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save"
|
||||
|
@ -105,7 +105,7 @@ def test_valid_concurrent_save_for_issue_different_versions(client):
|
|||
def test_valid_concurrent_save_for_issue_different_fields(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.issues.api.IssueViewSet.pre_conditions_on_save"
|
||||
|
@ -134,7 +134,7 @@ def test_valid_concurrent_save_for_issue_different_fields(client):
|
|||
def test_invalid_concurrent_save_for_wiki_page(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.wiki.api.WikiViewSet.pre_conditions_on_save"
|
||||
|
@ -158,7 +158,7 @@ def test_invalid_concurrent_save_for_wiki_page(client):
|
|||
def test_valid_concurrent_save_for_wiki_page_different_versions(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.wiki.api.WikiViewSet.pre_conditions_on_save"
|
||||
|
@ -182,7 +182,7 @@ def test_valid_concurrent_save_for_wiki_page_different_versions(client):
|
|||
def test_invalid_concurrent_save_for_us(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
f.UserStoryFactory.create(version=10, project=project)
|
||||
client.login(user)
|
||||
|
||||
|
@ -209,7 +209,7 @@ def test_invalid_concurrent_save_for_us(client):
|
|||
def test_valid_concurrent_save_for_us_different_versions(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.userstories.api.UserStoryViewSet.pre_conditions_on_save"
|
||||
|
@ -235,7 +235,7 @@ def test_valid_concurrent_save_for_us_different_versions(client):
|
|||
def test_valid_concurrent_save_for_us_different_fields(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.userstories.api.UserStoryViewSet.pre_conditions_on_save"
|
||||
|
@ -261,7 +261,7 @@ def test_valid_concurrent_save_for_us_different_fields(client):
|
|||
def test_invalid_concurrent_save_for_task(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save"
|
||||
|
@ -287,7 +287,7 @@ def test_invalid_concurrent_save_for_task(client):
|
|||
def test_valid_concurrent_save_for_task_different_versions(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save"
|
||||
|
@ -313,7 +313,7 @@ def test_valid_concurrent_save_for_task_different_versions(client):
|
|||
def test_valid_concurrent_save_for_task_different_fields(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save"
|
||||
|
@ -340,7 +340,7 @@ def test_valid_concurrent_save_for_task_different_fields(client):
|
|||
def test_invalid_save_without_version_parameter(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
client.login(user)
|
||||
|
||||
mock_path = "taiga.projects.tasks.api.TaskViewSet.pre_conditions_on_save"
|
||||
|
|
|
@ -64,11 +64,11 @@ def test_owner_member_get_user_project_permissions():
|
|||
project.anon_permissions = ["test1"]
|
||||
project.public_permissions = ["test2"]
|
||||
role = factories.RoleFactory(permissions=["test3"])
|
||||
factories.MembershipFactory(user=user1, project=project, role=role, is_owner=True)
|
||||
factories.MembershipFactory(user=user1, project=project, role=role, is_admin=True)
|
||||
|
||||
expected_perms = set(
|
||||
["test1", "test2", "test3"] +
|
||||
[x[0] for x in permissions.OWNERS_PERMISSIONS] +
|
||||
[x[0] for x in permissions.ADMINS_PERMISSIONS] +
|
||||
[x[0] for x in permissions.MEMBERS_PERMISSIONS]
|
||||
)
|
||||
assert service.get_user_project_permissions(user1, project) == expected_perms
|
||||
|
|
|
@ -90,7 +90,7 @@ def test_create_public_project_without_enough_public_projects_slots(client):
|
|||
|
||||
def test_change_project_from_private_to_public_without_enough_public_projects_slots(client):
|
||||
project = f.create_project(is_private=True, owner__max_public_projects=0)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
||||
data = {
|
||||
|
@ -106,7 +106,7 @@ def test_change_project_from_private_to_public_without_enough_public_projects_sl
|
|||
|
||||
def test_change_project_from_public_to_private_without_enough_private_projects_slots(client):
|
||||
project = f.create_project(is_private=False, owner__max_private_projects=0)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
||||
data = {
|
||||
|
@ -152,7 +152,7 @@ def test_create_public_project_with_enough_public_projects_slots(client):
|
|||
|
||||
def test_change_project_from_private_to_public_with_enough_public_projects_slots(client):
|
||||
project = f.create_project(is_private=True, owner__max_public_projects=1)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
||||
data = {
|
||||
|
@ -167,7 +167,7 @@ def test_change_project_from_private_to_public_with_enough_public_projects_slots
|
|||
|
||||
def test_change_project_from_public_to_private_with_enough_private_projects_slots(client):
|
||||
project = f.create_project(is_private=False, owner__max_private_projects=1)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
||||
data = {
|
||||
|
@ -182,7 +182,7 @@ def test_change_project_from_public_to_private_with_enough_private_projects_slot
|
|||
|
||||
def test_change_project_other_data_with_enough_private_projects_slots(client):
|
||||
project = f.create_project(is_private=True, owner__max_private_projects=1)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
||||
data = {
|
||||
|
@ -197,7 +197,7 @@ def test_change_project_other_data_with_enough_private_projects_slots(client):
|
|||
|
||||
def test_partially_update_project(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(user=project.owner, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=project.owner, project=project, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
data = {"name": ""}
|
||||
|
||||
|
@ -248,7 +248,7 @@ def test_task_status_is_closed_changed_recalc_us_is_closed(client):
|
|||
|
||||
def test_us_status_slug_generation(client):
|
||||
us_status = f.UserStoryStatusFactory(name="NEW")
|
||||
f.MembershipFactory(user=us_status.project.owner, project=us_status.project, is_owner=True)
|
||||
f.MembershipFactory(user=us_status.project.owner, project=us_status.project, is_admin=True)
|
||||
assert us_status.slug == "new"
|
||||
|
||||
client.login(us_status.project.owner)
|
||||
|
@ -268,7 +268,7 @@ def test_us_status_slug_generation(client):
|
|||
|
||||
def test_task_status_slug_generation(client):
|
||||
task_status = f.TaskStatusFactory(name="NEW")
|
||||
f.MembershipFactory(user=task_status.project.owner, project=task_status.project, is_owner=True)
|
||||
f.MembershipFactory(user=task_status.project.owner, project=task_status.project, is_admin=True)
|
||||
assert task_status.slug == "new"
|
||||
|
||||
client.login(task_status.project.owner)
|
||||
|
@ -288,7 +288,7 @@ def test_task_status_slug_generation(client):
|
|||
|
||||
def test_issue_status_slug_generation(client):
|
||||
issue_status = f.IssueStatusFactory(name="NEW")
|
||||
f.MembershipFactory(user=issue_status.project.owner, project=issue_status.project, is_owner=True)
|
||||
f.MembershipFactory(user=issue_status.project.owner, project=issue_status.project, is_admin=True)
|
||||
assert issue_status.slug == "new"
|
||||
|
||||
client.login(issue_status.project.owner)
|
||||
|
@ -309,7 +309,7 @@ def test_issue_status_slug_generation(client):
|
|||
def test_points_name_duplicated(client):
|
||||
point_1 = f.PointsFactory()
|
||||
point_2 = f.PointsFactory(project=point_1.project)
|
||||
f.MembershipFactory(user=point_1.project.owner, project=point_1.project, is_owner=True)
|
||||
f.MembershipFactory(user=point_1.project.owner, project=point_1.project, is_admin=True)
|
||||
client.login(point_1.project.owner)
|
||||
|
||||
url = reverse("points-detail", kwargs={"pk": point_2.pk})
|
||||
|
@ -396,7 +396,7 @@ def test_leave_project_valid_membership_only_owner(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create()
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_project"])
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
client.login(user)
|
||||
url = reverse("projects-leave", args=(project.id,))
|
||||
response = client.post(url)
|
||||
|
@ -409,8 +409,8 @@ def test_leave_project_valid_membership_real_owner(client):
|
|||
member_user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=owner_user)
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_project"])
|
||||
f.MembershipFactory.create(project=project, user=owner_user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=member_user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=owner_user, role=role, is_admin=True)
|
||||
f.MembershipFactory.create(project=project, user=member_user, role=role, is_admin=True)
|
||||
|
||||
client.login(owner_user)
|
||||
url = reverse("projects-leave", args=(project.id,))
|
||||
|
@ -448,7 +448,7 @@ def test_delete_membership_only_owner(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create()
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_project"])
|
||||
membership = f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
membership = f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
client.login(user)
|
||||
url = reverse("memberships-detail", args=(membership.id,))
|
||||
response = client.delete(url)
|
||||
|
@ -461,8 +461,8 @@ def test_delete_membership_real_owner(client):
|
|||
member_user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=owner_user)
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_project"])
|
||||
owner_membership = f.MembershipFactory.create(project=project, user=owner_user, role=role, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=member_user, role=role, is_owner=True)
|
||||
owner_membership = f.MembershipFactory.create(project=project, user=owner_user, role=role, is_admin=True)
|
||||
f.MembershipFactory.create(project=project, user=member_user, role=role, is_admin=True)
|
||||
|
||||
client.login(owner_user)
|
||||
url = reverse("memberships-detail", args=(owner_membership.id,))
|
||||
|
@ -475,22 +475,22 @@ def test_edit_membership_only_owner(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create()
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_project"])
|
||||
membership = f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
membership = f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
data = {
|
||||
"is_owner": False
|
||||
"is_admin": False
|
||||
}
|
||||
client.login(user)
|
||||
url = reverse("memberships-detail", args=(membership.id,))
|
||||
response = client.json.patch(url, json.dumps(data))
|
||||
assert response.status_code == 400
|
||||
assert response.data["is_owner"][0] == "The project must have an owner and at least one of the users must be an active admin"
|
||||
assert response.data["is_admin"][0] == "In this project at least one of the users must be an active admin."
|
||||
|
||||
|
||||
def test_anon_permissions_generation_when_making_project_public(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(is_private=True)
|
||||
role = f.RoleFactory.create(project=project, permissions=["view_project", "modify_project"])
|
||||
membership = f.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
membership = f.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
assert project.anon_permissions == []
|
||||
client.login(user)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
@ -504,7 +504,7 @@ def test_anon_permissions_generation_when_making_project_public(client):
|
|||
|
||||
def test_destroy_point_and_reassign(client):
|
||||
project = f.ProjectFactory.create()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
p1 = f.PointsFactory(project=project)
|
||||
project.default_points = p1
|
||||
project.save()
|
||||
|
@ -549,7 +549,7 @@ def test_create_and_use_template(client):
|
|||
user = f.UserFactory.create(is_superuser=True)
|
||||
project = f.create_project()
|
||||
role = f.RoleFactory(project=project)
|
||||
f.MembershipFactory(user=user, project=project, is_owner=True, role=role)
|
||||
f.MembershipFactory(user=user, project=project, is_admin=True, role=role)
|
||||
client.login(user)
|
||||
|
||||
url = reverse("projects-create-template", kwargs={"pk": project.pk})
|
||||
|
@ -575,11 +575,11 @@ def test_projects_user_order(client):
|
|||
user = f.UserFactory.create(is_superuser=True)
|
||||
project_1 = f.create_project()
|
||||
role_1 = f.RoleFactory(project=project_1)
|
||||
f.MembershipFactory(user=user, project=project_1, is_owner=True, role=role_1, user_order=2)
|
||||
f.MembershipFactory(user=user, project=project_1, is_admin=True, role=role_1, user_order=2)
|
||||
|
||||
project_2 = f.create_project()
|
||||
role_2 = f.RoleFactory(project=project_2)
|
||||
f.MembershipFactory(user=user, project=project_2, is_owner=True, role=role_2, user_order=1)
|
||||
f.MembershipFactory(user=user, project=project_2, is_admin=True, role=role_2, user_order=1)
|
||||
|
||||
client.login(user)
|
||||
#Testing default id order
|
||||
|
@ -762,7 +762,7 @@ def test_transfer_request_from_not_admin_member(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.create_project()
|
||||
role = f.RoleFactory(project=project, permissions=["view_project"])
|
||||
f.MembershipFactory(user=user, project=project, role=role, is_owner=False)
|
||||
f.MembershipFactory(user=user, project=project, role=role, is_admin=False)
|
||||
|
||||
url = reverse("projects-transfer-request", args=(project.id,))
|
||||
|
||||
|
@ -778,7 +778,7 @@ def test_transfer_request_from_admin_member(client):
|
|||
user = f.UserFactory.create()
|
||||
project = f.create_project()
|
||||
role = f.RoleFactory(project=project, permissions=["view_project"])
|
||||
f.MembershipFactory(user=user, project=project, role=role, is_owner=True)
|
||||
f.MembershipFactory(user=user, project=project, role=role, is_admin=True)
|
||||
|
||||
url = reverse("projects-transfer-request", args=(project.id,))
|
||||
|
||||
|
@ -792,7 +792,7 @@ def test_transfer_request_from_admin_member(client):
|
|||
def test_project_transfer_start_to_not_a_membership(client):
|
||||
user_from = f.UserFactory.create()
|
||||
project = f.create_project(owner=user_from)
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
|
||||
client.login(user_from)
|
||||
url = reverse("projects-transfer-start", kwargs={"pk": project.pk})
|
||||
|
@ -809,7 +809,7 @@ def test_project_transfer_start_to_not_a_membership_admin(client):
|
|||
user_from = f.UserFactory.create()
|
||||
user_to = f.UserFactory.create()
|
||||
project = f.create_project(owner=user_from)
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project)
|
||||
|
||||
client.login(user_from)
|
||||
|
@ -827,8 +827,8 @@ def test_project_transfer_start_to_a_valid_user(client):
|
|||
user_from = f.UserFactory.create()
|
||||
user_to = f.UserFactory.create()
|
||||
project = f.create_project(owner=user_from)
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_from)
|
||||
url = reverse("projects-transfer-start", kwargs={"pk": project.pk})
|
||||
|
@ -854,8 +854,8 @@ def test_project_transfer_reject_from_admin_member_without_token(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-reject", kwargs={"pk": project.pk})
|
||||
|
@ -877,8 +877,8 @@ def test_project_transfer_reject_from_not_admin_member(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token, public_permissions=["view_project"])
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=False)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=False)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-reject", kwargs={"pk": project.pk})
|
||||
|
@ -900,8 +900,8 @@ def test_project_transfer_reject_from_admin_member_with_invalid_token(client):
|
|||
|
||||
project = f.create_project(owner=user_from, transfer_token="invalid-token")
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-reject", kwargs={"pk": project.pk})
|
||||
|
@ -927,8 +927,8 @@ def test_project_transfer_reject_from_admin_member_with_other_user_token(client)
|
|||
token = signer.sign(other_user.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-reject", kwargs={"pk": project.pk})
|
||||
|
@ -953,8 +953,8 @@ def test_project_transfer_reject_from_admin_member_with_expired_token(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-reject", kwargs={"pk": project.pk})
|
||||
|
@ -979,8 +979,8 @@ def test_project_transfer_reject_from_admin_member_with_valid_token(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-reject", kwargs={"pk": project.pk})
|
||||
|
@ -1005,8 +1005,8 @@ def test_project_transfer_accept_from_admin_member_without_token(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
@ -1028,8 +1028,8 @@ def test_project_transfer_accept_from_not_admin_member(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token, public_permissions=["view_project"])
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=False)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=False)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
@ -1051,8 +1051,8 @@ def test_project_transfer_accept_from_admin_member_with_invalid_token(client):
|
|||
|
||||
project = f.create_project(owner=user_from, transfer_token="invalid-token")
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
@ -1078,8 +1078,8 @@ def test_project_transfer_accept_from_admin_member_with_other_user_token(client)
|
|||
token = signer.sign(other_user.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
@ -1104,8 +1104,8 @@ def test_project_transfer_accept_from_admin_member_with_expired_token(client):
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
@ -1130,8 +1130,8 @@ def test_project_transfer_accept_from_admin_member_with_valid_token_without_enou
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token, is_private=True)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
@ -1158,8 +1158,8 @@ def test_project_transfer_accept_from_admin_member_with_valid_token_without_enou
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token, is_private=False)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=project)
|
||||
f.MembershipFactory(project=project)
|
||||
|
@ -1192,8 +1192,8 @@ def test_project_transfer_accept_from_admin_member_with_valid_token_without_enou
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token, is_private=True)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
f.MembershipFactory(project=project)
|
||||
f.MembershipFactory(project=project)
|
||||
|
@ -1226,8 +1226,8 @@ def test_project_transfer_accept_from_admin_member_with_valid_token_with_enough_
|
|||
token = signer.sign(user_to.id)
|
||||
project = f.create_project(owner=user_from, transfer_token=token, is_private=True)
|
||||
|
||||
f.MembershipFactory(user=user_from, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_owner=True)
|
||||
f.MembershipFactory(user=user_from, project=project, is_admin=True)
|
||||
f.MembershipFactory(user=user_to, project=project, is_admin=True)
|
||||
|
||||
client.login(user_to)
|
||||
url = reverse("projects-transfer-accept", kwargs={"pk": project.pk})
|
||||
|
|
|
@ -152,7 +152,7 @@ def test_params_validation_in_api_request(client, refmodels):
|
|||
project = factories.ProjectFactory.create(owner=user)
|
||||
seqname1 = refmodels.make_sequence_name(project)
|
||||
role = factories.RoleFactory.create(project=project)
|
||||
factories.MembershipFactory.create(project=project, user=user, role=role, is_owner=True)
|
||||
factories.MembershipFactory.create(project=project, user=user, role=role, is_admin=True)
|
||||
|
||||
milestone = factories.MilestoneFactory.create(project=project)
|
||||
us = factories.UserStoryFactory.create(project=project)
|
||||
|
|
|
@ -36,7 +36,7 @@ def test_destroy_role_and_reassign_members(client):
|
|||
project = f.ProjectFactory.create(owner=user1)
|
||||
role1 = f.RoleFactory.create(project=project)
|
||||
role2 = f.RoleFactory.create(project=project)
|
||||
f.MembershipFactory.create(project=project, user=user1, role=role1, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user1, role=role1, is_admin=True)
|
||||
f.MembershipFactory.create(project=project, user=user2, role=role2)
|
||||
|
||||
url = reverse("roles-detail", args=[role2.pk]) + "?moveTo={}".format(role1.pk)
|
||||
|
|
|
@ -43,7 +43,7 @@ def test_create_task_without_status(client):
|
|||
project.default_task_status = status
|
||||
project.save()
|
||||
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("tasks-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
|
@ -56,7 +56,7 @@ def test_create_task_without_status(client):
|
|||
def test_create_task_without_default_values(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user, default_task_status=None)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("tasks-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
|
@ -69,7 +69,7 @@ def test_create_task_without_default_values(client):
|
|||
def test_api_update_task_tags(client):
|
||||
project = f.ProjectFactory.create()
|
||||
task = f.create_task(project=project, status__project=project, milestone=None, user_story=None)
|
||||
f.MembershipFactory.create(project=project, user=task.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=task.owner, is_admin=True)
|
||||
url = reverse("tasks-detail", kwargs={"pk": task.pk})
|
||||
data = {"tags": ["back", "front"], "version": task.version}
|
||||
|
||||
|
@ -81,7 +81,7 @@ def test_api_update_task_tags(client):
|
|||
|
||||
def test_api_create_in_bulk_with_status(client):
|
||||
us = f.create_userstory()
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
us.project.default_task_status = f.TaskStatusFactory.create(project=us.project)
|
||||
url = reverse("tasks-bulk-create")
|
||||
data = {
|
||||
|
@ -104,7 +104,7 @@ def test_api_create_invalid_task(client):
|
|||
# But the User Story is not associated with the milestone
|
||||
us_milestone = f.MilestoneFactory.create()
|
||||
us = f.create_userstory(milestone=us_milestone)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
us.project.default_task_status = f.TaskStatusFactory.create(project=us.project)
|
||||
task_milestone = f.MilestoneFactory.create(project=us.project, owner=us.owner)
|
||||
|
||||
|
@ -124,7 +124,7 @@ def test_api_create_invalid_task(client):
|
|||
|
||||
def test_api_update_order_in_bulk(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
task1 = f.create_task(project=project)
|
||||
task2 = f.create_task(project=project)
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ def test_anonimous_throttling_policy(client, settings):
|
|||
|
||||
def test_user_throttling_policy(client, settings):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
url = reverse("projects-detail", kwargs={"pk": project.pk})
|
||||
|
||||
client.login(project.owner)
|
||||
|
@ -84,7 +84,7 @@ def test_user_throttling_policy(client, settings):
|
|||
|
||||
def test_import_mode_throttling_policy(client, settings):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
project.default_issue_type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = f.IssueStatusFactory.create(project=project)
|
||||
project.default_severity = f.SeverityFactory.create(project=project)
|
||||
|
|
|
@ -112,7 +112,7 @@ def test_project_totals_updated_on_activity(client):
|
|||
|
||||
def test_project_totals_updated_on_like(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
|
||||
totals_updated_datetime = project.totals_updated_datetime
|
||||
now = datetime.datetime.now()
|
||||
|
|
|
@ -50,8 +50,8 @@ def test_create_userstory_with_watchers(client):
|
|||
user = f.UserFactory.create()
|
||||
user_watcher = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user_watcher, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
f.MembershipFactory.create(project=project, user=user_watcher, is_admin=True)
|
||||
url = reverse("userstories-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id, "watchers": [user_watcher.id]}
|
||||
|
@ -69,7 +69,7 @@ def test_create_userstory_without_status(client):
|
|||
project.default_us_status = status
|
||||
project.save()
|
||||
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("userstories-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
|
@ -82,7 +82,7 @@ def test_create_userstory_without_status(client):
|
|||
def test_create_userstory_without_default_values(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user, default_us_status=None)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("userstories-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
|
@ -94,7 +94,7 @@ def test_create_userstory_without_default_values(client):
|
|||
|
||||
def test_api_delete_userstory(client):
|
||||
us = f.UserStoryFactory.create()
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
url = reverse("userstories-detail", kwargs={"pk": us.pk})
|
||||
|
||||
client.login(us.owner)
|
||||
|
@ -106,7 +106,7 @@ def test_api_delete_userstory(client):
|
|||
def test_api_filter_by_subject_or_ref(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
|
||||
f.UserStoryFactory.create(project=project)
|
||||
f.UserStoryFactory.create(project=project, subject="some random subject")
|
||||
|
@ -122,7 +122,7 @@ def test_api_filter_by_subject_or_ref(client):
|
|||
|
||||
def test_api_create_in_bulk_with_status(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
url = reverse("userstories-bulk-create")
|
||||
data = {
|
||||
"bulk_stories": "Story #1\nStory #2",
|
||||
|
@ -139,7 +139,7 @@ def test_api_create_in_bulk_with_status(client):
|
|||
|
||||
def test_api_update_orders_in_bulk(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=project.owner, is_admin=True)
|
||||
us1 = f.create_userstory(project=project)
|
||||
us2 = f.create_userstory(project=project)
|
||||
|
||||
|
@ -172,7 +172,7 @@ def test_update_userstory_points(client):
|
|||
role1 = f.RoleFactory.create(project=project)
|
||||
role2 = f.RoleFactory.create(project=project)
|
||||
|
||||
f.MembershipFactory.create(project=project, user=user1, role=role1, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user1, role=role1, is_admin=True)
|
||||
f.MembershipFactory.create(project=project, user=user2, role=role2)
|
||||
|
||||
f.PointsFactory.create(project=project, value=None)
|
||||
|
@ -236,7 +236,7 @@ def test_update_userstory_rolepoints_on_add_new_role(client):
|
|||
def test_archived_filter(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
f.UserStoryFactory.create(project=project)
|
||||
archived_status = f.UserStoryStatusFactory.create(is_archived=True)
|
||||
f.UserStoryFactory.create(status=archived_status, project=project)
|
||||
|
@ -261,7 +261,7 @@ def test_archived_filter(client):
|
|||
def test_filter_by_multiple_status(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
f.UserStoryFactory.create(project=project)
|
||||
us1 = f.UserStoryFactory.create(project=project)
|
||||
us2 = f.UserStoryFactory.create(project=project)
|
||||
|
@ -479,7 +479,7 @@ def test_update_userstory_respecting_watchers(client):
|
|||
project = f.ProjectFactory.create()
|
||||
us = f.UserStoryFactory.create(project=project, status__project=project, milestone__project=project)
|
||||
us.add_watcher(watching_user)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
f.MembershipFactory.create(project=us.project, user=watching_user)
|
||||
|
||||
client.login(user=us.owner)
|
||||
|
@ -496,7 +496,7 @@ def test_update_userstory_update_watchers(client):
|
|||
watching_user = f.create_user()
|
||||
project = f.ProjectFactory.create()
|
||||
us = f.UserStoryFactory.create(project=project, status__project=project, milestone__project=project)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
f.MembershipFactory.create(project=us.project, user=watching_user)
|
||||
|
||||
client.login(user=us.owner)
|
||||
|
@ -515,7 +515,7 @@ def test_update_userstory_remove_watchers(client):
|
|||
project = f.ProjectFactory.create()
|
||||
us = f.UserStoryFactory.create(project=project, status__project=project, milestone__project=project)
|
||||
us.add_watcher(watching_user)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
f.MembershipFactory.create(project=us.project, user=watching_user)
|
||||
|
||||
client.login(user=us.owner)
|
||||
|
@ -532,7 +532,7 @@ def test_update_userstory_remove_watchers(client):
|
|||
def test_update_userstory_update_tribe_gig(client):
|
||||
project = f.ProjectFactory.create()
|
||||
us = f.UserStoryFactory.create(project=project, status__project=project, milestone__project=project)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_admin=True)
|
||||
|
||||
url = reverse("userstories-detail", kwargs={"pk": us.pk})
|
||||
data = {
|
||||
|
|
|
@ -27,7 +27,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_upvote_issue(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url = reverse("issues-upvote", args=(issue.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -39,7 +39,7 @@ def test_upvote_issue(client):
|
|||
def test_downvote_issue(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url = reverse("issues-downvote", args=(issue.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -51,7 +51,7 @@ def test_downvote_issue(client):
|
|||
def test_list_issue_voters(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
f.VoteFactory.create(content_object=issue, user=user)
|
||||
url = reverse("issue-voters-list", args=(issue.id,))
|
||||
|
||||
|
@ -64,7 +64,7 @@ def test_list_issue_voters(client):
|
|||
def test_get_issue_voter(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
vote = f.VoteFactory.create(content_object=issue, user=user)
|
||||
url = reverse("issue-voters-detail", args=(issue.id, vote.user.id))
|
||||
|
||||
|
@ -77,7 +77,7 @@ def test_get_issue_voter(client):
|
|||
def test_get_issue_votes(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url = reverse("issues-detail", args=(issue.id,))
|
||||
|
||||
f.VotesFactory.create(content_object=issue, count=5)
|
||||
|
@ -92,7 +92,7 @@ def test_get_issue_votes(client):
|
|||
def test_get_issue_is_voted(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
f.VotesFactory.create(content_object=issue)
|
||||
url_detail = reverse("issues-detail", args=(issue.id,))
|
||||
url_upvote = reverse("issues-upvote", args=(issue.id,))
|
||||
|
|
|
@ -27,7 +27,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_upvote_task(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user, milestone=None)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url = reverse("tasks-upvote", args=(task.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -39,7 +39,7 @@ def test_upvote_task(client):
|
|||
def test_downvote_task(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user, milestone=None)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url = reverse("tasks-downvote", args=(task.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -51,7 +51,7 @@ def test_downvote_task(client):
|
|||
def test_list_task_voters(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
f.VoteFactory.create(content_object=task, user=user)
|
||||
url = reverse("task-voters-list", args=(task.id,))
|
||||
|
||||
|
@ -65,7 +65,7 @@ def test_list_task_voters(client):
|
|||
def test_get_task_voter(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
vote = f.VoteFactory.create(content_object=task, user=user)
|
||||
url = reverse("task-voters-detail", args=(task.id, vote.user.id))
|
||||
|
||||
|
@ -79,7 +79,7 @@ def test_get_task_voter(client):
|
|||
def test_get_task_votes(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url = reverse("tasks-detail", args=(task.id,))
|
||||
|
||||
f.VotesFactory.create(content_object=task, count=5)
|
||||
|
@ -94,7 +94,7 @@ def test_get_task_votes(client):
|
|||
def test_get_task_is_voted(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user, milestone=None)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
f.VotesFactory.create(content_object=task)
|
||||
url_detail = reverse("tasks-detail", args=(task.id,))
|
||||
url_upvote = reverse("tasks-upvote", args=(task.id,))
|
||||
|
|
|
@ -27,7 +27,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_upvote_user_story(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url = reverse("userstories-upvote", args=(user_story.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -39,7 +39,7 @@ def test_upvote_user_story(client):
|
|||
def test_downvote_user_story(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url = reverse("userstories-downvote", args=(user_story.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -51,7 +51,7 @@ def test_downvote_user_story(client):
|
|||
def test_list_user_story_voters(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
f.VoteFactory.create(content_object=user_story, user=user)
|
||||
url = reverse("userstory-voters-list", args=(user_story.id,))
|
||||
|
||||
|
@ -64,7 +64,7 @@ def test_list_user_story_voters(client):
|
|||
def test_get_userstory_voter(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
vote = f.VoteFactory.create(content_object=user_story, user=user)
|
||||
url = reverse("userstory-voters-detail", args=(user_story.id, vote.user.id))
|
||||
|
||||
|
@ -78,7 +78,7 @@ def test_get_userstory_voter(client):
|
|||
def test_get_user_story_votes(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url = reverse("userstories-detail", args=(user_story.id,))
|
||||
|
||||
f.VotesFactory.create(content_object=user_story, count=5)
|
||||
|
@ -93,7 +93,7 @@ def test_get_user_story_votes(client):
|
|||
def test_get_user_story_is_voted(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
f.VotesFactory.create(content_object=user_story)
|
||||
url_detail = reverse("userstories-detail", args=(user_story.id,))
|
||||
url_upvote = reverse("userstories-upvote", args=(user_story.id,))
|
||||
|
|
|
@ -28,7 +28,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_watch_issue(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url = reverse("issues-watch", args=(issue.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -40,7 +40,7 @@ def test_watch_issue(client):
|
|||
def test_unwatch_issue(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url = reverse("issues-watch", args=(issue.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -52,7 +52,7 @@ def test_unwatch_issue(client):
|
|||
def test_list_issue_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.IssueFactory(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
f.WatchedFactory.create(content_object=issue, user=user)
|
||||
url = reverse("issue-watchers-list", args=(issue.id,))
|
||||
|
||||
|
@ -66,7 +66,7 @@ def test_list_issue_watchers(client):
|
|||
def test_get_issue_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.IssueFactory(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
watch = f.WatchedFactory.create(content_object=issue, user=user)
|
||||
url = reverse("issue-watchers-detail", args=(issue.id, watch.user.id))
|
||||
|
||||
|
@ -80,7 +80,7 @@ def test_get_issue_watcher(client):
|
|||
def test_get_issue_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url = reverse("issues-detail", args=(issue.id,))
|
||||
|
||||
f.WatchedFactory.create(content_object=issue, user=user)
|
||||
|
@ -96,7 +96,7 @@ def test_get_issue_watchers(client):
|
|||
def test_get_issue_is_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=issue.project, user=user, is_admin=True)
|
||||
url_detail = reverse("issues-detail", args=(issue.id,))
|
||||
url_watch = reverse("issues-watch", args=(issue.id,))
|
||||
url_unwatch = reverse("issues-unwatch", args=(issue.id,))
|
||||
|
|
|
@ -28,7 +28,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_watch_milestone(client):
|
||||
user = f.UserFactory.create()
|
||||
milestone = f.MilestoneFactory(owner=user)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_admin=True)
|
||||
url = reverse("milestones-watch", args=(milestone.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -40,7 +40,7 @@ def test_watch_milestone(client):
|
|||
def test_unwatch_milestone(client):
|
||||
user = f.UserFactory.create()
|
||||
milestone = f.MilestoneFactory(owner=user)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_admin=True)
|
||||
url = reverse("milestones-watch", args=(milestone.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -52,7 +52,7 @@ def test_unwatch_milestone(client):
|
|||
def test_list_milestone_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
milestone = f.MilestoneFactory(owner=user)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_admin=True)
|
||||
f.WatchedFactory.create(content_object=milestone, user=user)
|
||||
url = reverse("milestone-watchers-list", args=(milestone.id,))
|
||||
|
||||
|
@ -66,7 +66,7 @@ def test_list_milestone_watchers(client):
|
|||
def test_get_milestone_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
milestone = f.MilestoneFactory(owner=user)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_admin=True)
|
||||
watch = f.WatchedFactory.create(content_object=milestone, user=user)
|
||||
url = reverse("milestone-watchers-detail", args=(milestone.id, watch.user.id))
|
||||
|
||||
|
@ -80,7 +80,7 @@ def test_get_milestone_watcher(client):
|
|||
def test_get_milestone_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
milestone = f.MilestoneFactory(owner=user)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_admin=True)
|
||||
url = reverse("milestones-detail", args=(milestone.id,))
|
||||
|
||||
f.WatchedFactory.create(content_object=milestone, user=user)
|
||||
|
@ -95,7 +95,7 @@ def test_get_milestone_watchers(client):
|
|||
def test_get_milestone_is_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
milestone = f.MilestoneFactory(owner=user)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=milestone.project, user=user, is_admin=True)
|
||||
url_detail = reverse("milestones-detail", args=(milestone.id,))
|
||||
url_watch = reverse("milestones-watch", args=(milestone.id,))
|
||||
url_unwatch = reverse("milestones-unwatch", args=(milestone.id,))
|
||||
|
|
|
@ -30,7 +30,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_watch_project(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-watch", args=(project.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -42,7 +42,7 @@ def test_watch_project(client):
|
|||
def test_watch_project_with_valid_notify_level(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-watch", args=(project.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -57,7 +57,7 @@ def test_watch_project_with_valid_notify_level(client):
|
|||
def test_watch_project_with_invalid_notify_level(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-watch", args=(project.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -73,7 +73,7 @@ def test_watch_project_with_invalid_notify_level(client):
|
|||
def test_unwatch_project(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-unwatch", args=(project.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -85,7 +85,7 @@ def test_unwatch_project(client):
|
|||
def test_list_project_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
f.WatchedFactory.create(content_object=project, user=user)
|
||||
url = reverse("project-watchers-list", args=(project.id,))
|
||||
|
||||
|
@ -99,7 +99,7 @@ def test_list_project_watchers(client):
|
|||
def test_get_project_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
watch = f.WatchedFactory.create(content_object=project, user=user)
|
||||
url = reverse("project-watchers-detail", args=(project.id, watch.user.id))
|
||||
|
||||
|
@ -113,7 +113,7 @@ def test_get_project_watcher(client):
|
|||
def test_get_project_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.create_project(owner=user)
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=project, user=user, is_admin=True)
|
||||
url = reverse("projects-detail", args=(project.id,))
|
||||
|
||||
f.WatchedFactory.create(content_object=project, user=user)
|
||||
|
|
|
@ -28,7 +28,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_watch_task(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user, milestone=None)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url = reverse("tasks-watch", args=(task.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -40,7 +40,7 @@ def test_watch_task(client):
|
|||
def test_unwatch_task(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user, milestone=None)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url = reverse("tasks-watch", args=(task.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -52,7 +52,7 @@ def test_unwatch_task(client):
|
|||
def test_list_task_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.TaskFactory(owner=user)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
f.WatchedFactory.create(content_object=task, user=user)
|
||||
url = reverse("task-watchers-list", args=(task.id,))
|
||||
|
||||
|
@ -66,7 +66,7 @@ def test_list_task_watchers(client):
|
|||
def test_get_task_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.TaskFactory(owner=user)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
watch = f.WatchedFactory.create(content_object=task, user=user)
|
||||
url = reverse("task-watchers-detail", args=(task.id, watch.user.id))
|
||||
|
||||
|
@ -80,7 +80,7 @@ def test_get_task_watcher(client):
|
|||
def test_get_task_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.TaskFactory(owner=user)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url = reverse("tasks-detail", args=(task.id,))
|
||||
|
||||
f.WatchedFactory.create(content_object=task, user=user)
|
||||
|
@ -96,7 +96,7 @@ def test_get_task_watchers(client):
|
|||
def test_get_task_is_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
task = f.create_task(owner=user, milestone=None)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=task.project, user=user, is_admin=True)
|
||||
url_detail = reverse("tasks-detail", args=(task.id,))
|
||||
url_watch = reverse("tasks-watch", args=(task.id,))
|
||||
url_unwatch = reverse("tasks-unwatch", args=(task.id,))
|
||||
|
|
|
@ -28,7 +28,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_watch_user_story(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url = reverse("userstories-watch", args=(user_story.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -40,7 +40,7 @@ def test_watch_user_story(client):
|
|||
def test_unwatch_user_story(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url = reverse("userstories-unwatch", args=(user_story.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -52,7 +52,7 @@ def test_unwatch_user_story(client):
|
|||
def test_list_user_story_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.UserStoryFactory(owner=user)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
f.WatchedFactory.create(content_object=user_story, user=user)
|
||||
url = reverse("userstory-watchers-list", args=(user_story.id,))
|
||||
|
||||
|
@ -66,7 +66,7 @@ def test_list_user_story_watchers(client):
|
|||
def test_get_user_story_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
watch = f.WatchedFactory.create(content_object=user_story, user=user)
|
||||
url = reverse("userstory-watchers-detail", args=(user_story.id, watch.user.id))
|
||||
|
||||
|
@ -80,7 +80,7 @@ def test_get_user_story_watcher(client):
|
|||
def test_get_user_story_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url = reverse("userstories-detail", args=(user_story.id,))
|
||||
|
||||
f.WatchedFactory.create(content_object=user_story, user=user)
|
||||
|
@ -96,7 +96,7 @@ def test_get_user_story_watchers(client):
|
|||
def test_get_user_story_is_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
user_story = f.create_userstory(owner=user, status=None)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=user_story.project, user=user, is_admin=True)
|
||||
url_detail = reverse("userstories-detail", args=(user_story.id,))
|
||||
url_watch = reverse("userstories-watch", args=(user_story.id,))
|
||||
url_unwatch = reverse("userstories-unwatch", args=(user_story.id,))
|
||||
|
|
|
@ -28,7 +28,7 @@ pytestmark = pytest.mark.django_db
|
|||
def test_watch_wikipage(client):
|
||||
user = f.UserFactory.create()
|
||||
wikipage = f.WikiPageFactory(owner=user)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_admin=True)
|
||||
url = reverse("wiki-watch", args=(wikipage.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -40,7 +40,7 @@ def test_watch_wikipage(client):
|
|||
def test_unwatch_wikipage(client):
|
||||
user = f.UserFactory.create()
|
||||
wikipage = f.WikiPageFactory(owner=user)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_admin=True)
|
||||
url = reverse("wiki-watch", args=(wikipage.id,))
|
||||
|
||||
client.login(user)
|
||||
|
@ -52,7 +52,7 @@ def test_unwatch_wikipage(client):
|
|||
def test_list_wikipage_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
wikipage = f.WikiPageFactory(owner=user)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_admin=True)
|
||||
f.WatchedFactory.create(content_object=wikipage, user=user)
|
||||
url = reverse("wiki-watchers-list", args=(wikipage.id,))
|
||||
|
||||
|
@ -66,7 +66,7 @@ def test_list_wikipage_watchers(client):
|
|||
def test_get_wikipage_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
wikipage = f.WikiPageFactory(owner=user)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_admin=True)
|
||||
watch = f.WatchedFactory.create(content_object=wikipage, user=user)
|
||||
url = reverse("wiki-watchers-detail", args=(wikipage.id, watch.user.id))
|
||||
|
||||
|
@ -80,7 +80,7 @@ def test_get_wikipage_watcher(client):
|
|||
def test_get_wikipage_watchers(client):
|
||||
user = f.UserFactory.create()
|
||||
wikipage = f.WikiPageFactory(owner=user)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_admin=True)
|
||||
url = reverse("wiki-detail", args=(wikipage.id,))
|
||||
|
||||
f.WatchedFactory.create(content_object=wikipage, user=user)
|
||||
|
@ -95,7 +95,7 @@ def test_get_wikipage_watchers(client):
|
|||
def test_get_wikipage_is_watcher(client):
|
||||
user = f.UserFactory.create()
|
||||
wikipage = f.WikiPageFactory(owner=user)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_owner=True)
|
||||
f.MembershipFactory.create(project=wikipage.project, user=user, is_admin=True)
|
||||
url_detail = reverse("wiki-detail", args=(wikipage.id,))
|
||||
url_watch = reverse("wiki-watch", args=(wikipage.id,))
|
||||
url_unwatch = reverse("wiki-unwatch", args=(wikipage.id,))
|
||||
|
|
Loading…
Reference in New Issue