Skip to content

Instantly share code, notes, and snippets.



Forked from mbrochh/
Created Dec 7, 2012
What would you like to do?
Django UserFactory with factory_boy - using random instead of clock to avoid username clashes
import random
from django.contrib.auth.models import User
from factory import Factory, LazyAttribute, Sequence
class UserFactory(Factory):
Creates a new ``User`` object.
Username will be a random 30 character md5 value.
Email will be ```` with ``N`` being a counter.
Password will be ``test123`` by default.
username = LazyAttribute(lambda x: '%030x' % random.randrange(256 ** 15))
email = Sequence(lambda n: 'user{0}'.format(n))
def _prepare(cls, create, **kwargs):
password = 'test123'
if 'password' in kwargs:
password = kwargs.pop('password')
user = super(UserFactory, cls)._prepare(create, **kwargs)
if create:
return user
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment