88 lines
2.1 KiB
Python
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
|