🗃️(models) add MailDomain, MailDomainAccess and Mailbox models

Additional app and models to handle email addresses creation in Desk.
This commit is contained in:
Marie PUPO JEAMMET
2024-04-08 21:29:26 +02:00
committed by Marie
parent a1f9cf0854
commit cca6c77f00
11 changed files with 383 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
"""
Mailbox manager application factories
"""
import factory.fuzzy
from faker import Faker
from core import factories as core_factories
from core import models as core_models
from mailbox_manager import models
fake = Faker()
class MailDomainFactory(factory.django.DjangoModelFactory):
"""A factory to create mail domain."""
class Meta:
model = models.MailDomain
name = factory.Faker("domain_name")
class MailDomainAccessFactory(factory.django.DjangoModelFactory):
"""A factory to create mail domain accesses."""
class Meta:
model = models.MailDomainAccess
user = factory.SubFactory(core_factories.UserFactory)
domain = factory.SubFactory(MailDomainFactory)
role = factory.fuzzy.FuzzyChoice([r[0] for r in core_models.RoleChoices.choices])
class MailboxFactory(factory.django.DjangoModelFactory):
"""A factory to create mailboxes for mail domain members."""
class Meta:
model = models.Mailbox
class Params:
"""Parameters for fields."""
full_name = factory.Faker("name")
local_part = factory.LazyAttribute(lambda a: a.full_name.lower().replace(" ", "."))
domain = factory.SubFactory(MailDomainFactory)
secondary_email = factory.Faker("email")