Files
edx-platform/lms/djangoapps/courseware/tests/factories.py

88 lines
2.1 KiB
Python

"""
Build courseware-centric test factories
Generic, LMS-agnostic factories can be found in:
`common.djangoapps.student.tests.factories.py`
"""
import json
from functools import partial
import factory
from factory.django import DjangoModelFactory
from opaque_keys.edx.keys import CourseKey
from opaque_keys.edx.locator import CourseLocator
from common.djangoapps.student.tests.factories import UserFactory
from lms.djangoapps.courseware.models import (
StudentModule,
XModuleStudentInfoField,
XModuleStudentPrefsField,
XModuleUserStateSummaryField,
FinancialAssistanceConfiguration
)
COURSE_KEY = CourseKey.from_string('edX/test_course/test')
LOCATION = partial(COURSE_KEY.make_usage_key, 'problem')
class StudentModuleFactory(DjangoModelFactory):
"""
Build StudentModule models
"""
class Meta:
model = StudentModule
module_type = "problem"
student = factory.SubFactory(UserFactory)
course_id = CourseLocator("MITx", "999", "Robot_Super_Course")
state = None
grade = None
max_grade = None
done = 'na'
class UserStateSummaryFactory(DjangoModelFactory):
"""
Build XModuleUserStateSummaryField models
"""
class Meta:
model = XModuleUserStateSummaryField
field_name = 'existing_field'
value = json.dumps('old_value')
usage_id = LOCATION('usage_id')
class StudentPrefsFactory(DjangoModelFactory):
"""
Build XModuleStudentPrefsField models
"""
class Meta:
model = XModuleStudentPrefsField
field_name = 'existing_field'
value = json.dumps('old_value')
student = factory.SubFactory(UserFactory)
module_type = 'mock_problem'
class StudentInfoFactory(DjangoModelFactory):
"""
Build XModuleStudentInfoField models
"""
class Meta:
model = XModuleStudentInfoField
field_name = 'existing_field'
value = json.dumps('old_value')
student = factory.SubFactory(UserFactory)
class FinancialAssistanceConfigurationFactory(DjangoModelFactory):
"""
Factory for FinancialAssistanceConfiguration model.
"""
class Meta:
model = FinancialAssistanceConfiguration