mirror of
https://github.com/gosticks/plane.git
synced 2025-10-16 12:45:33 +00:00
* pytest bases tests for apiserver * Trimmed spaces * Updated .gitignore for pytest local files
82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
import factory
|
|
from uuid import uuid4
|
|
from django.utils import timezone
|
|
|
|
from plane.db.models import (
|
|
User,
|
|
Workspace,
|
|
WorkspaceMember,
|
|
Project,
|
|
ProjectMember
|
|
)
|
|
|
|
|
|
class UserFactory(factory.django.DjangoModelFactory):
|
|
"""Factory for creating User instances"""
|
|
class Meta:
|
|
model = User
|
|
django_get_or_create = ('email',)
|
|
|
|
id = factory.LazyFunction(uuid4)
|
|
email = factory.Sequence(lambda n: f'user{n}@plane.so')
|
|
password = factory.PostGenerationMethodCall('set_password', 'password')
|
|
first_name = factory.Sequence(lambda n: f'First{n}')
|
|
last_name = factory.Sequence(lambda n: f'Last{n}')
|
|
is_active = True
|
|
is_superuser = False
|
|
is_staff = False
|
|
|
|
|
|
class WorkspaceFactory(factory.django.DjangoModelFactory):
|
|
"""Factory for creating Workspace instances"""
|
|
class Meta:
|
|
model = Workspace
|
|
django_get_or_create = ('slug',)
|
|
|
|
id = factory.LazyFunction(uuid4)
|
|
name = factory.Sequence(lambda n: f'Workspace {n}')
|
|
slug = factory.Sequence(lambda n: f'workspace-{n}')
|
|
owner = factory.SubFactory(UserFactory)
|
|
created_at = factory.LazyFunction(timezone.now)
|
|
updated_at = factory.LazyFunction(timezone.now)
|
|
|
|
|
|
class WorkspaceMemberFactory(factory.django.DjangoModelFactory):
|
|
"""Factory for creating WorkspaceMember instances"""
|
|
class Meta:
|
|
model = WorkspaceMember
|
|
|
|
id = factory.LazyFunction(uuid4)
|
|
workspace = factory.SubFactory(WorkspaceFactory)
|
|
member = factory.SubFactory(UserFactory)
|
|
role = 20 # Admin role by default
|
|
created_at = factory.LazyFunction(timezone.now)
|
|
updated_at = factory.LazyFunction(timezone.now)
|
|
|
|
|
|
class ProjectFactory(factory.django.DjangoModelFactory):
|
|
"""Factory for creating Project instances"""
|
|
class Meta:
|
|
model = Project
|
|
django_get_or_create = ('name', 'workspace')
|
|
|
|
id = factory.LazyFunction(uuid4)
|
|
name = factory.Sequence(lambda n: f'Project {n}')
|
|
workspace = factory.SubFactory(WorkspaceFactory)
|
|
created_by = factory.SelfAttribute('workspace.owner')
|
|
updated_by = factory.SelfAttribute('workspace.owner')
|
|
created_at = factory.LazyFunction(timezone.now)
|
|
updated_at = factory.LazyFunction(timezone.now)
|
|
|
|
|
|
class ProjectMemberFactory(factory.django.DjangoModelFactory):
|
|
"""Factory for creating ProjectMember instances"""
|
|
class Meta:
|
|
model = ProjectMember
|
|
|
|
id = factory.LazyFunction(uuid4)
|
|
project = factory.SubFactory(ProjectFactory)
|
|
member = factory.SubFactory(UserFactory)
|
|
role = 20 # Admin role by default
|
|
created_at = factory.LazyFunction(timezone.now)
|
|
updated_at = factory.LazyFunction(timezone.now) |