wagtail / wagtail-factories

Factory boy classes for wagtail
http://wagtail-factories.readthedocs.io/en/latest/
MIT License
102 stars 40 forks source link

Add factories for Wagtail's view restriction classes #90

Open jams2 opened 6 months ago

jams2 commented 6 months ago

Here's a barebones example - we may need to add factories for some more related models.

import factory
import factory.fuzzy
import wagtail_factories
from wagtail import models as wagtail_models

class BaseViewRestrictionFactory(factory.django.DjangoModelFactory):
    """
    Factory for Wagtail's BaseViewRestriction model.
    """

    restriction_type = factory.fuzzy.FuzzyChoice(
        wagtail_models.BaseViewRestriction.RESTRICTION_CHOICES
    )
    password = factory.Faker("text", max_nb_chars=20)

    class Meta:
        model = wagtail_models.BaseViewRestriction
        abstract = True

class PageViewRestrictionFactory(BaseViewRestrictionFactory):
    """
    Factory for Wagtail's PageViewRestriction model.
    """

    page = factory.SubFactory(wagtail_factories.PageFactory)

    class Meta:
        model = wagtail_models.PageViewRestriction

class PasswordPageRestrictionFactory(PageViewRestrictionFactory):
    """
    Factory for creating password restrictions for Wagtail pages.
    """

    restriction_type = wagtail_models.BaseViewRestriction.PASSWORD