Skip to content
Snippets Groups Projects
factories.py 948 B
Newer Older
  • Learn to ignore specific revisions
  • import factory
    import persisting_theory
    
    
    class FactoriesRegistry(persisting_theory.Registry):
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        look_into = "factories"
    
    
        def prepare_name(self, data, name=None):
            return name or data._meta.model._meta.label
    
    
    registry = FactoriesRegistry()
    
    
    def ManyToManyFromList(field_name):
        """
        To automate the pattern described in
        http://factoryboy.readthedocs.io/en/latest/recipes.html#simple-many-to-many-relationship
        """
    
        @factory.post_generation
        def inner(self, create, extracted, **kwargs):
            if not create:
                return
    
            if extracted:
                field = getattr(self, field_name)
                field.add(*extracted)
    
        return inner
    
    
    
    class NoUpdateOnCreate:
        """
        Factory boy calls save after the initial create. In most case, this
        is not needed, so we disable this behaviour
        """
    
        @classmethod
        def _after_postgeneration(cls, instance, create, results=None):
            return