TKO/services/backend/tko/tests/factories.py
2025-03-28 18:36:20 +01:00

62 lines
1.6 KiB
Python

from random import randint
import factory
import datetime
from django.contrib.auth.models import User
from factory.fuzzy import FuzzyDate
from datetime import date
from tko.models import Article, Event, ArticleImage, Contact
class ContactFactory(factory.django.DjangoModelFactory):
class Meta:
model = Contact
name = factory.Faker("name")
email = factory.Faker("email")
phone_number = factory.Faker("phone_number")
content = factory.Faker("text")
class ArticleFactory(factory.django.DjangoModelFactory):
class Meta:
model = Article
title = factory.Faker("name")
content = factory.Faker("text")
date = FuzzyDate(datetime.date(2021, 1, 1), date.today())
author = factory.Faker("name")
active_to = FuzzyDate(datetime.date(2021, 1, 1), datetime.date(2025, 1, 1))
class GalleryFactory(factory.django.DjangoModelFactory):
class Meta:
model = ArticleImage
article = factory.SubFactory(ArticleFactory)
image = factory.django.FileField(filename='image.png')
main = factory.Faker("boolean")
class EventFactory(factory.django.DjangoModelFactory):
class Meta:
model = Event
title = factory.Faker("name")
start_date = FuzzyDate(datetime.date(2021, 1, 1), datetime.date(2025, 1, 1))
end_date = factory.LazyAttribute(
lambda obj: obj.start_date + datetime.timedelta(minutes=randint(5, 5 * 24 * 60))
)
color = factory.Faker("color")
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = User
username = factory.Faker("name")
email = factory.Faker("email")
password = "password"
is_superuser = True