createfakeusers.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import random
  2. from django.contrib.auth import get_user_model
  3. from django.core.exceptions import ValidationError
  4. from django.core.management.base import BaseCommand
  5. from django.db import IntegrityError
  6. from faker import Factory
  7. from misago.users.models import Rank
  8. class Command(BaseCommand):
  9. help = 'Creates plenty of random fakey users for testing purposes'
  10. def handle(self, *args, **options):
  11. fake_users_to_create = 100000
  12. fake = Factory.create()
  13. User = get_user_model()
  14. ranks = [r for r in Rank.objects.all()]
  15. message = 'Attempting to create %s fake user accounts!'
  16. self.stdout.write(message % fake_users_to_create)
  17. message = 'Successfully created %s fake user accounts!'
  18. created_count = 0
  19. for i in xrange(fake_users_to_create):
  20. try:
  21. kwargs = {
  22. 'rank': random.choice(ranks),
  23. }
  24. User.objects.create_user(fake.first_name(), fake.email(),
  25. 'pass123', **kwargs)
  26. except (ValidationError, IntegrityError):
  27. pass
  28. else:
  29. created_count += 1
  30. if created_count % 100 == 0:
  31. self.stdout.write(message % created_count)
  32. self.stdout.write(message % User.objects.all().count())