123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import random
- from django.contrib.auth import get_user_model
- from django.core.exceptions import ValidationError
- from django.core.management.base import BaseCommand
- from django.db import IntegrityError
- from faker import Factory
- from misago.users.models import Rank
- class Command(BaseCommand):
- help = 'Creates plenty of random fakey users for testing purposes'
- def handle(self, *args, **options):
- fake_users_to_create = 100000
- fake = Factory.create()
- User = get_user_model()
- ranks = [r for r in Rank.objects.all()]
- message = 'Attempting to create %s fake user accounts!'
- self.stdout.write(message % fake_users_to_create)
- message = 'Successfully created %s fake user accounts!'
- created_count = 0
- for i in xrange(fake_users_to_create):
- try:
- kwargs = {
- 'rank': random.choice(ranks),
- }
- User.objects.create_user(fake.first_name(), fake.email(),
- 'pass123', **kwargs)
- except (ValidationError, IntegrityError):
- pass
- else:
- created_count += 1
- if created_count % 100 == 0:
- self.stdout.write(message % created_count)
- self.stdout.write(message % User.objects.all().count())
|