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')
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'))
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')
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', } )
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'
""" 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, })
import uuid from mixer.backend.django import mixer __all__ = [ mixer, ] mixer.register('users.User', username=lambda: str(uuid.uuid4()))
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
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',
#!/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 } })
# 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):
# -*- 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, )