create_random_users.py 1.38 KB
Newer Older
1 2 3
"""
A script to create some dummy users
"""
4
from django.core.management.base import BaseCommand
5
from student.models import CourseEnrollment
6
from opaque_keys import InvalidKeyError
7 8
from opaque_keys.edx.keys import CourseKey
from opaque_keys.edx.locations import SlashSeparatedCourseKey
9 10
from student.views import _do_create_account, get_random_post_override

Calen Pennington committed
11

12 13 14 15
def create(num, course_key):
    """Create num users, enrolling them in course_key if it's not None"""
    for idx in range(num):
        (user, user_profile, __) = _do_create_account(get_random_post_override())
16 17
        if course_key is not None:
            CourseEnrollment.enroll(user, course_key)
18

Calen Pennington committed
19

20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
class Command(BaseCommand):
    help = """Create N new users, with random parameters.

Usage: create_random_users.py N [course_id_to_enroll_in].

Examples:
  create_random_users.py 1
  create_random_users.py 10 MITx/6.002x/2012_Fall
  create_random_users.py 100 HarvardX/CS50x/2012
"""

    def handle(self, *args, **options):
        if len(args) < 1 or len(args) > 2:
            print Command.help
            return

36
        num = int(args[0])
37 38 39 40 41 42 43

        if len(args) == 2:
            try:
                course_key = CourseKey.from_string(args[1])
            except InvalidKeyError:
                course_key = SlashSeparatedCourseKey.from_deprecated_string(args[1])
        else:
44
            course_key = None
45

46
        create(num, course_key)