factories.py 2.19 KB
Newer Older
1
from datetime import datetime
2 3
import json
from functools import partial
4

5 6 7 8 9 10
from factory import DjangoModelFactory, SubFactory
from student.tests.factories import UserFactory as StudentUserFactory
from student.tests.factories import GroupFactory as StudentGroupFactory
from student.tests.factories import UserProfileFactory as StudentUserProfileFactory
from student.tests.factories import CourseEnrollmentAllowedFactory as StudentCourseEnrollmentAllowedFactory
from student.tests.factories import RegistrationFactory as StudentRegistrationFactory
Calen Pennington committed
11
from courseware.models import StudentModule, XModuleUserStateSummaryField
12
from courseware.models import XModuleStudentInfoField, XModuleStudentPrefsField
Calen Pennington committed
13

14
from xmodule.modulestore import Location
15
from pytz import UTC
16

17
location = partial(Location, 'i4x', 'edX', 'test_course', 'problem')
18

Calen Pennington committed
19

20 21 22
class UserProfileFactory(StudentUserProfileFactory):
    name = 'Robot Studio'
    courseware = 'course.xml'
23 24


25 26
class RegistrationFactory(StudentRegistrationFactory):
    pass
Calen Pennington committed
27

28

29
class UserFactory(StudentUserFactory):
30 31
    email = 'robot@edx.org'
    last_name = 'Tester'
32 33
    last_login = datetime.now(UTC)
    date_joined = datetime.now(UTC)
34

Calen Pennington committed
35

36
class GroupFactory(StudentGroupFactory):
37 38
    name = 'test_group'

Calen Pennington committed
39

40 41
class CourseEnrollmentAllowedFactory(StudentCourseEnrollmentAllowedFactory):
    pass
42

43

44
class StudentModuleFactory(DjangoModelFactory):
45 46 47
    FACTORY_FOR = StudentModule

    module_type = "problem"
48
    student = SubFactory(UserFactory)
49 50 51 52 53
    course_id = "MITx/999/Robot_Super_Course"
    state = None
    grade = None
    max_grade = None
    done = 'na'
54 55


Calen Pennington committed
56 57
class UserStateSummaryFactory(DjangoModelFactory):
    FACTORY_FOR = XModuleUserStateSummaryField
58 59 60

    field_name = 'existing_field'
    value = json.dumps('old_value')
Calen Pennington committed
61
    usage_id = location('def_id').url()
62 63 64 65 66 67 68 69


class StudentPrefsFactory(DjangoModelFactory):
    FACTORY_FOR = XModuleStudentPrefsField

    field_name = 'existing_field'
    value = json.dumps('old_value')
    student = SubFactory(UserFactory)
70
    module_type = 'MockProblemModule'
71 72 73 74 75 76 77 78


class StudentInfoFactory(DjangoModelFactory):
    FACTORY_FOR = XModuleStudentInfoField

    field_name = 'existing_field'
    value = json.dumps('old_value')
    student = SubFactory(UserFactory)