예제 #1
0
파일: test_django.py 프로젝트: timka/mixer
def test_custom(mixer):
    mixer.register(Rabbit, title=lambda: 'Mr. Rabbit')

    rabbit = mixer.blend(Rabbit)
    assert rabbit.title == 'Mr. Rabbit'

    from mixer.backend.django import GenFactory

    def getter(*args, **kwargs):
        return "Always same"

    class MyFactory(GenFactory):
        generators = {models.CharField: getter}

    fabric = MyFactory.gen_maker(models.CharField)
    assert next(fabric()) == "Always same"

    mixer = Mixer(factory=MyFactory, fake=False)
    assert mixer._Mixer__factory == MyFactory

    test = mixer.blend(Rabbit)
    assert test.title == "Always same"

    @mixer.middleware('auth.user')
    def encrypt_password(user): # noqa
        user.set_password(user.password)
        return user

    user = mixer.blend('auth.User', password='******')
    assert user.check_password('test')

    user = user.__class__.objects.get(pk=user.pk)
    assert user.check_password('test')
예제 #2
0
파일: test_django.py 프로젝트: f4bsch/mixer
    def test_fake(self):
        from mixer.backend.django import mixer

        def postprocess(user):
            user.set_password(user.password)
            return user

        mixer.register('auth.User', {}, postprocess=postprocess)
        user = mixer.blend('auth.User', username=mixer.fake, password='******')
        self.assertTrue('' in user.username)
        self.assertTrue(user.check_password('test'))
        user = user.__class__.objects.get(pk=user.pk)
        self.assertTrue(user.check_password('test'))
예제 #3
0
def test_custom(mixer):
    mixer.register(
        Rabbit,
        title=lambda: 'Mr. Rabbit',
        speed=lambda: mixer.faker.small_positive_integer(99))

    rabbit = mixer.blend(Rabbit, speed=mixer.RANDOM, percent=23)
    assert isinstance(rabbit.speed, decimal.Decimal)
    assert isinstance(rabbit.percent, float)
    assert rabbit.title == 'Mr. Rabbit'

    from mixer.backend.django import GenFactory

    def getter(*args, **kwargs):
        return "Always same"

    class MyFactory(GenFactory):
        generators = {models.CharField: getter}

    fabric = MyFactory.get_fabric(models.CharField)
    assert fabric() == "Always same"

    mixer = Mixer(factory=MyFactory, fake=False)
    assert mixer._Mixer__factory == MyFactory

    test = mixer.blend(Rabbit)
    assert test.title == "Always same"

    @mixer.middleware('auth.user')
    def encrypt_password(user): # noqa
        user.set_password(user.password)
        return user

    user = mixer.blend('auth.User', password='******')
    assert user.check_password('test')

    user = user.__class__.objects.get(pk=user.pk)
    assert user.check_password('test')
예제 #4
0
from django.contrib.gis.geos import Point
from django.test import TestCase, Client
from mixer.backend.django import mixer

from shack.models import Address  # NOTE: don't use relative imports.


mixer.register(
    Address, centroid=lambda: Point(float(mixer.faker.latitude()), float(mixer.faker.longitude())),
)


class ShackTestCase(TestCase):
    client = Client()

    def setUp(self):
        # Generate an Address object to test geocoding.
        self.address = mixer.blend(
            Address,
            address_nice='182 NORTHSTEAD ST SCARBOROUGH 6019',
            data={
                'survey_lot': 'LOT 442 ON PLAN 3697',
                'pin': 1,
                'postcode': '6019',
                'addrs_no': '182',
                'road_sfx': 'ST',
                'locality': 'SCARBOROUGH',
                'addrs_sfx': None,
                'road_name': 'NORTHSTEAD',
            }
        )
예제 #5
0
from datetime import timedelta
from random import randint

import pytest
from django.contrib.gis.geos import Point
from django.utils import timezone
from mixer.backend.django import mixer
from rest_framework.test import APIClient

__all__ = ['mixer']

mixer.register(
    'games.Location',
    gis=lambda: Point(
        float(mixer.faker.latitude()),
        float(mixer.faker.longitude()),
    ),
)

# Create games in the future by default
mixer.register(
    'games.Game',
    datetime=timezone.now() + timedelta(randint(1, 500)),
    name=None,
)


def get_email(_email_counter=[0]):
    _email_counter[0] += 1
    return f'email{_email_counter[0]}@example.com'
예제 #6
0
파일: mix.py 프로젝트: emil2k/joltem
""" Prepare mixer to generate Joltem models. """
from mixer.backend.django import mixer


def _set_password(user):
    user.set_password(user.password)
    return user

mixer.register('joltem.user', {}, postprocess=_set_password)

mixer.register('project.project', {
    'title': mixer.F.get_simple_username
})

SSH_TEMPLATE = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfg+CS9hIcTTI6qRAqfkhS3lzIxlKut25NRr+FIQNTGwHPfDBS3kCATJKKe9MNAO5pqOaWqZ4i5PmHMb+CbfjBxB2IeJR8JqzXocLo8pTTiNoJqWGyGgxZKZK87yLeAAFqthCT2l5QdVoXaygkCK0JZ4Deh63USy4MBWWFLjRHFmE2nVV7vJuoLCEbn7TuiP7M3HQZLTHrZx9liVEIc72d5jdBaNhcthK8oW0rb1zaYCYbBFwvAWVwQNgBC5d7Pgf1XqHKt5j9DlA1pEbHlj8hKNJao6YYSlVlXA8oUuEXoSC/SnguXyP6xsbd9WStPqDh9iMYSqYIu/Ikf7V4%s %s" # noqa
mixer.register('git.authentication', {
    'key': lambda: SSH_TEMPLATE % (
        mixer.G.get_string(length=4), mixer.F.get_email()),
    'name': mixer.F.get_simple_username,
    'fingerprint': mixer.SKIP,
})

mixer.register('git.repository', {
    'name': mixer.MIX.project.title,
})
예제 #7
0
import uuid
from mixer.backend.django import mixer

__all__ = [
    mixer,
]

mixer.register('users.User', username=lambda: str(uuid.uuid4()))
예제 #8
0
from django.core.management import call_command
# from mixer.backend.django import mixer

from contentcuration.tests.testdata import channel
from contentcuration.models import Channel, ContentNode, User

# CONSTANTS
NUM_CHANNELS = 1000
NUM_NODES_PER_CHANNEL = 500

from mixer.backend.django import mixer

mixer.register(
    User,
    information="{}",
    content_defaults="{}",
    policies="{}"
)


if __name__ == "__main__":
    warnings.warn("THIS WILL CLEAR YOUR DATABASE AND FILL IT WITH TEST DATA!")
    logging.info("Clearing the DB")
    call_command("flush", "--noinput")

    # set up our DB from scratch and create our user
    logging.info("Setting up the database")
    call_command("setup")

    # create NUM_CHANNELS channels using mixer
예제 #9
0
from django.contrib.gis.geos import Point
from django.test import TestCase, Client
from mixer.backend.django import mixer
from webtest import TestApp

from geocoder import application
from shack.models import Address  # NOTE: don't use relative imports.

mixer.register(
    Address,
    centroid=lambda: Point(float(mixer.faker.latitude()),
                           float(mixer.faker.longitude())),
)


class ShackTestCase(TestCase):
    client = Client()
    app = TestApp(application)

    def setUp(self):
        # Generate an Address object to test geocoding.
        self.address = mixer.blend(
            Address,
            object_id=1,
            address_nice='182 NORTHSTEAD ST SCARBOROUGH 6019',
            data={
                'survey_lot': 'LOT 442 ON PLAN 3697',
                'pin': 1,
                'postcode': '6019',
                'addrs_no': '182',
                'road_sfx': 'ST',
예제 #10
0
#!/usr/bin/env python
import sys

import pytest

# Mark the test class or function as a slow test, where we avoid running it
# in a normal test run due to its long running time.
# Use py.test --includeslowtests to run these kinds of tests.
slowtest = pytest.mark.skipif(
    "--includeslowtests" not in sys.argv,
    reason="Skipping because this test is a slow test.")

from mixer.backend.django import mixer
from contentcuration.models import ContentNode

mixer.register(ContentNode,
               extra_fields=lambda: {
                   'a': 1,
                   'b': 2,
                   'c': {
                       'd': 3
                   }
               })
예제 #11
0
파일: prep.py 프로젝트: umeshprasadk/studio
# set the settings module
os.putenv("DJANGO_SETTINGS_MODULE", "contentcuration.test_settings")

from django.core.management import call_command
# from mixer.backend.django import mixer

from contentcuration.tests.testdata import channel
from contentcuration.models import Channel, ContentNode, User

# CONSTANTS
NUM_CHANNELS = 1000
NUM_NODES_PER_CHANNEL = 500

from mixer.backend.django import mixer

mixer.register(User, information="{}", content_defaults="{}", policies="{}")

if __name__ == "__main__":
    warnings.warn("THIS WILL CLEAR YOUR DATABASE AND FILL IT WITH TEST DATA!")
    logging.info("Clearing the DB")
    call_command("flush", "--noinput")

    # set up our DB from scratch and create our user
    logging.info("Setting up the database")
    call_command("setup")

    # create NUM_CHANNELS channels using mixer

    logging.info("Creating {} channels".format(NUM_CHANNELS))

    for _ in range(NUM_CHANNELS):
예제 #12
0
# -*- coding: utf-8 -*-

from django.contrib.gis.geos import fromstr
from django.http import JsonResponse
from mixer.backend.django import mixer
from raven.contrib.django.raven_compat.models import client

mixer.register(
    'api.Tellzone',
    hours={
        'Mon': '09:00 AM to 05:00 PM',
        'Tue': '09:00 AM to 05:00 PM',
        'Wed': '09:00 AM to 05:00 PM',
        'Thu': '09:00 AM to 05:00 PM',
        'Fri': '09:00 AM to 05:00 PM',
        'Sat': '09:00 AM to 05:00 PM',
        'Sun': '09:00 AM to 05:00 PM',
    },
    point=fromstr('POINT(1.00 1.00)'),
)


class Exception(object):
    def process_exception(self, request, exception):
        client.captureException()
        return JsonResponse(
            data={
                'error': unicode(exception),
            },
            status=500,
        )