Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
oyaji / oyaji / places / factories.py
Size: Mime:
import factory

from oyaji.places.models import (
    ArticlesRelated,
    VideosRelated,
    Location,
    RelatedPlaceLocation,
    Place,
)
from oyaji.cities.factories import CityFactory
from oyaji.core.factories import DescriptionFactory


class ArticleFactory(factory.mongoengine.MongoEngineFactory):
    class Meta:
        model = ArticlesRelated

    key = factory.Sequence(lambda n: "uuid-%d" % n)
    spotlight = False
    title = factory.Sequence(lambda n: "Article Title %d" % n)
    url = factory.Sequence(lambda n: "http://domain.com/article-%d" % n)


class VideoFactory(factory.mongoengine.MongoEngineFactory):
    class Meta:
        model = VideosRelated

    key = factory.Sequence(lambda n: "uuid-%d" % n)
    spotlight = False
    title = factory.Sequence(lambda n: "Video Title %d" % n)
    url = factory.Sequence(lambda n: "http://domain.com/video-%d" % n)
    video_id = factory.Sequence(lambda n: "video-%d" % n)


class LocationFactory(factory.mongoengine.MongoEngineFactory):
    class Meta:
        model = Location

    latitude = factory.Sequence(lambda n: "44554555.455-%d" % n)
    longitude = factory.Sequence(lambda n: "78784181.884-%d" % n)


class RelatedPlaceLocationFactory(factory.mongoengine.MongoEngineFactory):
    class Meta:
        model = RelatedPlaceLocation

    key = factory.Sequence(lambda n: "uuid-%d" % n)
    latitude = factory.Sequence(lambda n: "44554555.455-%d" % n)
    longitude = factory.Sequence(lambda n: "78784181.884-%d" % n)
    name = factory.Sequence(lambda n: "Place related %d" % n)
    slug = factory.Sequence(lambda n: "place-related-%d" % n)


class PlaceFactory(factory.mongoengine.MongoEngineFactory):
    class Meta:
        model = Place

    name = factory.Sequence(lambda n: "Place %d" % n)
    slug = factory.Sequence(lambda n: "place-%d" % n)
    description = factory.SubFactory(DescriptionFactory)
    city = factory.SubFactory(CityFactory)
    created_elastic_search_index = False

    location = factory.SubFactory(LocationFactory)

    articles_related = factory.LazyAttribute(lambda a: [ArticleFactory()])
    videos_related = factory.LazyAttribute(lambda a: [VideoFactory()])
    places_related = factory.LazyAttribute(lambda a: [RelatedPlaceLocationFactory()])

    @factory.post_generation
    def types(self, create, extracted, **kwargs):
        if not create:
            return

        if extracted:
            # A list of groups were passed in, use them
            for types in extracted:
                self.types.add(types)