Esempio n. 1
0
class BookFactory(MongoEngineFactory):
    class Meta:
        model = Book

    title = factory.Faker("catch_phrase")
    pages = factory.LazyFunction(
        lambda: [text for text in faker.Faker().text()])
    author = factory.Faker("name")
    cover = ""
    page_active = 1
Esempio n. 2
0
class TurnpointFactory(Factory):
    """Turnpoint factory"""
    class Meta:
        model = Turnpoint

    name = Sequence(lambda n: f"TP{n}")
    description = faker.Faker().sentence(nb_words=4)
    altitude = int(random() * 1000)
    shape = 'circle'
    type = 'waypoint'
    how = 'entry'
Esempio n. 3
0
def test(testapp):
    resp1 = testapp.post_json("/accounts/", None)
    assert "token" in resp1.json
    token = resp1.json["token"]
    fake = faker.Faker()
    fake_post = fake.job()
    resp2 = testapp.post_json("/posts/", {"text": fake_post},
                              headers={"X-Api-Key": token})
    assert "id" in resp2.json
    post_id = resp2.json["id"]
    resp3 = testapp.get("/posts/")
    assert "posts" in resp3.json
    assert post_id in [p["id"] for p in resp3.json["posts"]]
Esempio n. 4
0
    def handle(self, *args, **options):
        """
        Execute the command that create profile(s).
        """

        for _ in range(0, options['number']):
            new_faker = faker.Faker()

            user = UserFactory(username=new_faker.email(),
                               email=new_faker.email(),
                               password='******')

            ProfilFactory(user=user, )
Esempio n. 5
0
    def add_detail(self, create, extracted, **kwargs):
        """Add detail to event."""
        FAKER = faker.Faker()

        # Set location
        # 80% chance one location, otherwise multiple
        if random.randint(1, 5) == 1:
            self.locations.add(*random.sample(list(Location.objects.all()),
                                              random.randint(2, 4)))
        else:
            self.locations.add(random.choice(Location.objects.all()))

        # Set organiser
        # 80% chance one organiser, otherwise multiple
        if random.randint(1, 5) == 1:
            self.organisers.add(*random.sample(list(Organiser.objects.all()),
                                               random.randint(2, 3)))
        else:
            self.organisers.add(random.choice(Organiser.objects.all()))

        # Set sponsor
        # 80% chance one sponsor, otherwise multiple
        if random.randint(1, 5) == 1:
            self.sponsors.add(*random.sample(list(Sponsor.objects.all()),
                                             random.randint(2, 4)))
        else:
            self.sponsors.add(random.choice(Sponsor.objects.all()))

        # Set series
        # 50% chance of being in a series
        if random.randint(1, 2) == 1:
            self.series = random.choice(Series.objects.all())

        # Add sessions
        start_time = self.start.replace(microsecond=0, second=0, minute=0)
        number_of_sessions = random.randint(1, 10)
        for i in range(number_of_sessions):
            duration = random.choice([30, 60, 120, 180])
            end_time = start_time + timedelta(minutes=duration)
            Session.objects.create(
                name=FAKER.sentence(),
                description=FAKER.paragraph(nb_sentences=10),
                event=self,
                url=FAKER.url(),
                start=start_time,
                end=end_time,
            )
            start_time = end_time
        self.update_datetimes()
Esempio n. 6
0
class UserFactory(SQLAlchemyModelFactory):

    fake = faker.Faker()

    class Meta:
        model = User

    username = factory.Faker('name')
    password = generate_password_hash("password")
    @factory.lazy_attribute
    def email(self):
        # Convert to plain ascii text
        clean_name = (unicodedata.normalize('NFKD', self.username)
                      .encode('ascii', 'ignore')
                      .decode('utf8'))
        return u'*****@*****.**' % clean_name
Esempio n. 7
0
    def create_from_user(cls, user, **kwargs):
        """
        :type user: entry.models.User
        """
        from factory.faker import faker

        fake = faker.Faker(locale='ru_RU')

        employee = cls(
            user=user,

            first_name=user.first_name if user.first_name else fake.first_name(),
            last_name=user.last_name if user.last_name else fake.last_name(),
            timezone=user.timezone,
            phone=user.phone,
            email=user.email,
            is_active=True,
            **kwargs
        )

        employee.save()

        return employee
Esempio n. 8
0
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.files import File
from django.template.defaultfilters import slugify
from django.utils import timezone

import factory
import pytest
from addresses.models import Address
from factory.faker import faker
from items.models import Category, Item, ItemImage, WearSize
from lib.models import CompanyInfo
from orders.models import Order, OrderItem

FAKE = faker.Faker()


class CategoryFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Category

    name = factory.Sequence(lambda n: "category%d" % n)
    slug = factory.LazyAttribute(lambda a: slugify(a.name))
    parent = None


class ItemAccessoryFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = Item
Esempio n. 9
0
    def add_detail(self, create, extracted, **kwargs):
        """Add detail to resource."""
        FAKER = faker.Faker()

        # Set language
        # 25% chance both languages, otherwise one
        if random.randint(1, 4) == 1:
            self.languages.add(*Language.objects.all())
        else:
            self.languages.add(random.choice(Language.objects.all()))

        # Set technological areas
        # 20% chance both, otherwise one
        if random.randint(1, 5) == 1:
            self.technological_areas.add(*TechnologicalArea.objects.all())
        else:
            self.technological_areas.add(
                random.choice(TechnologicalArea.objects.all()))

        # Choose primary (45%), secondary (45%), both (10%) for rest of variables
        if random.randint(1, 10) == 1:
            resource_detail_content = CONTENT_BOTH
            self.year_levels.add(*random.sample(list(YearLevel.objects.all()),
                                                random.randint(1, 4)))
        elif random.randint(1, 2) == 1:
            resource_detail_content = CONTENT_PRIMARY
            self.year_levels.add(
                *random.sample(list(YearLevel.objects.filter(
                    level__lte=8)), random.randint(1, 4)))
        else:
            resource_detail_content = CONTENT_SECONDARY
            self.year_levels.add(
                *random.sample(list(YearLevel.objects.filter(
                    level__gte=9)), random.randint(1, 4)))

        # Add progress outcomes
        if resource_detail_content in [CONTENT_BOTH, CONTENT_PRIMARY]:
            self.progress_outcomes.add(*random.sample(
                list(
                    ProgressOutcome.objects.filter(
                        technological_area__in=self.technological_areas.all())
                ), random.randint(1, 3)))

        # Add NZQA standards
        if resource_detail_content in [CONTENT_BOTH, CONTENT_SECONDARY]:
            self.nzqa_standards.add(*random.sample(
                list(NZQAStandard.objects.all()), random.randint(1, 3)))

        # Add curriculum learning areas
        self.curriculum_learning_areas.add(*random.sample(
            list(CurriculumLearningArea.objects.all()), random.randint(0, 2)))

        # Add components
        number_of_components = random.randint(1, 9)
        for i in range(number_of_components):

            component_name = FAKER.sentence()
            component_type = random.choice(
                list(ResourceComponent.COMPONENT_TYPE_DATA))
            resource_count = Resource.objects.count()

            if component_type == ResourceComponent.TYPE_RESOURCE and resource_count >= 2:
                resources = list(Resource.objects.exclude(pk=self.pk))
                resource_component = resources[random.randint(
                    0,
                    len(resources) - 1)]
                ResourceComponent.objects.create(
                    name=resource_component.name,
                    resource=self,
                    component_resource=resource_component,
                )
            # TODO: Implement all types of components
            else:  # Website
                ResourceComponent.objects.create(
                    name=component_name,
                    resource=self,
                    component_url=FAKER.url(),
                )
Esempio n. 10
0
# All Rights Reserved.
# This file is proprietary and confidential.
# Unauthorized copying of this file, via any medium is strictly prohibited.
"""Factories for Django models for the Klazor project."""

# Classes defined in this module do not need a docstring
# as we know up front that they're fa for their corresponding model.
# pylint: disable=missing-class-docstring

import factory
import pytz
from factory.faker import faker

from klazor import models

fake = faker.Faker()


#####################
# General
####################
class UserFactory(factory.DjangoModelFactory):
    class Meta:
        model = models.User

    username = factory.Sequence(lambda n: 'username%d' % n)
    email = factory.Faker('email')
    phone = factory.Faker('phone_number')


class FolderFactory(factory.DjangoModelFactory):
Esempio n. 11
0
import factory
from factory.faker import faker
from core.tests.factories import SeriesFactory

FAKER = faker.Faker(locale='en_US')



class PostFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = 'blog.Post'

    headline = factory.Sequence(lambda n: 'post%d' % n)
    short_description = factory.LazyAttribute(lambda x: FAKER.paragraph())
    content = factory.LazyAttribute(lambda x: FAKER.paragraph(10))

class PostWithSeriesFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = 'blog.Post'

    headline = factory.Sequence(lambda n: 'post%d' % n)
    short_description = factory.LazyAttribute(lambda x: FAKER.paragraph())
    content = factory.LazyAttribute(lambda x: FAKER.paragraph(10))
    series = factory.SubFactory(SeriesFactory)
def random_filename():
    """Use factory.faker to generate a random file name which includes an uppercase character."""
    filegen = faker.Faker()
    return filegen.file_name().title()
Esempio n. 13
0
    def add_detail(self, create, extracted, **kwargs):
        """Add detail to event."""
        # Set featured
        # 20% chance
        if random.randint(1, 5) == 1:
            self.featured = True

        # Set show schedule
        # 10% chance to hide
        if random.randint(1, 10) == 1:
            self.show_schedule = False

        # Set location
        # 80% chance one location, otherwise multiple
        if random.randint(1, 5) == 1:
            self.locations.add(*random.sample(list(Location.objects.all()),
                                              random.randint(2, 4)))
        else:
            self.locations.add(random.choice(Location.objects.all()))

        # Set organiser
        # 80% chance one organiser, otherwise multiple
        if random.randint(1, 5) == 1:
            self.organisers.add(*random.sample(list(Entity.objects.all()),
                                               random.randint(2, 3)))
        else:
            self.organisers.add(random.choice(Entity.objects.all()))

        # Set sponsor
        # 80% chance one sponsor, otherwise multiple
        if random.randint(1, 5) == 1:
            self.sponsors.add(*random.sample(list(Entity.objects.all()),
                                             random.randint(2, 4)))
        else:
            self.sponsors.add(random.choice(Entity.objects.all()))

        # Set series
        # 50% chance of being in a series
        if random.randint(1, 2) == 1:
            self.series = random.choice(Series.objects.all())

        # Add sessions
        start_time = self.start.replace(microsecond=0, second=0, minute=0)
        number_of_sessions = random.randint(1, 10)
        for i in range(number_of_sessions):
            duration = random.choice([30, 60, 120, 180])
            end_time = start_time + timedelta(minutes=duration)
            for i in range(random.randint(1, 3)):
                session = Session.objects.create(
                    # TODO: Figure out how to use faker properly, as it doesn't evaluate here the standard way
                    name=faker.Faker().sentence(),
                    description=faker.Faker().paragraph(nb_sentences=10),
                    event=self,
                    url=faker.Faker().url(),
                    start=start_time,
                    end=end_time,
                )
                # Set location
                # 80% chance one location, otherwise multiple
                if random.randint(1, 5) == 1:
                    session.locations.add(*random.sample(
                        list(Location.objects.all()), random.randint(2, 4)))
                else:
                    session.locations.add(random.choice(
                        Location.objects.all()))
                session.save()
            # Set start time for next session as end time for this session
            start_time = end_time
        self.update_datetimes()