-
Notifications
You must be signed in to change notification settings - Fork 71
/
factories.py
37 lines (27 loc) · 981 Bytes
/
factories.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from typing import Any
from django.contrib.sites.models import Site
from factory.declarations import SubFactory
from factory.django import DjangoModelFactory
from factory.faker import Faker
from factory.helpers import post_generation
from wiki.models import URLPath
from wiki.models.article import Article, ArticleRevision
class ArticleRevisionFactory(DjangoModelFactory):
class Meta:
model = ArticleRevision
title = Faker("text")
content = Faker("paragraph")
class ArticleFactory(DjangoModelFactory):
class Meta:
model = Article
@post_generation
def set_current_revision(
self, create: bool, extracted: Any, **kwargs: dict[str, Any]
):
a: Article = self # type: ignore
a.current_revision = ArticleRevisionFactory(article=a)
class URLPathFactory(DjangoModelFactory):
class Meta:
model = URLPath
article = SubFactory(ArticleFactory)
site = Site.objects.get_current() # type: ignore