SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 73dc6a43 authored by George Katsikas's avatar George Katsikas :goat:
Browse files

add factories for all helpdesk models

parent d94c0ecc
No related branches found
No related tags found
No related merge requests found
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
import factory
from django.utils.text import slugify
from django.utils.timezone import timedelta
from common.faker import LazyAwareDate, LazyRandEnum, fake
from .models import *
class QueueFactory(factory.django.DjangoModelFactory):
class Meta:
model = Queue
name = factory.Faker("word")
slug = factory.LazyAttribute(lambda self: slugify(self.name.lower()))
description = factory.Faker("text")
managing_group = factory.SubFactory("scipost.factories.GroupFactory")
parent_queue = None
@factory.post_generation
def response_groups(self, create, extracted, **kwargs):
if not create:
return
if extracted:
for group in extracted:
self.response_groups.add(group)
class TicketFactory(factory.django.DjangoModelFactory):
class Meta:
model = Ticket
queue = factory.SubFactory(QueueFactory)
title = factory.Faker("sentence")
description = factory.Faker("text")
publicly_visible = False
defined_on = LazyAwareDate("date_time_this_decade")
defined_by = factory.SubFactory("scipost.factories.UserFactory")
deadline = factory.LazyAttribute(
lambda self: fake.aware.date_time_between(
start_date=self.defined_on, end_date="+1y"
)
)
priority = LazyRandEnum(TICKET_PRIORITIES)
status = LazyRandEnum(TICKET_STATUSES)
assigned_to = factory.SubFactory("scipost.factories.UserFactory")
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from django.test import TestCase
from ..factories import *
class TestQueueFactory(TestCase):
def test_can_create_queues(self):
queue = QueueFactory()
self.assertIsNotNone(queue)
class TestTicketFactory(TestCase):
def test_can_create_tickets(self):
ticket = TicketFactory()
self.assertIsNotNone(ticket)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment