# Source code for factory.mongoengine

    # Copyright: See the LICENSE file.

    """factory_boy extensions for use with the mongoengine library (pymongo wrapper)."""

    from . import base

    class MongoEngineFactory(base.Factory):
        """Factory for mongoengine objects."""

        class Meta:
            abstract = True

        @classmethod
        def _build(cls, model_class, *args, **kwargs):
            return model_class(*args, **kwargs)

        @classmethod
        def _create(cls, model_class, *args, **kwargs):
            instance = model_class(*args, **kwargs)
            if instance._is_document:
                instance.save()
            return instance