* Generate common/djangoapps import shims for LMS * Generate common/djangoapps import shims for Studio * Stop appending project root to sys.path * Stop appending common/djangoapps to sys.path * Import from common.djangoapps.course_action_state instead of course_action_state * Import from common.djangoapps.course_modes instead of course_modes * Import from common.djangoapps.database_fixups instead of database_fixups * Import from common.djangoapps.edxmako instead of edxmako * Import from common.djangoapps.entitlements instead of entitlements * Import from common.djangoapps.pipline_mako instead of pipeline_mako * Import from common.djangoapps.static_replace instead of static_replace * Import from common.djangoapps.student instead of student * Import from common.djangoapps.terrain instead of terrain * Import from common.djangoapps.third_party_auth instead of third_party_auth * Import from common.djangoapps.track instead of track * Import from common.djangoapps.util instead of util * Import from common.djangoapps.xblock_django instead of xblock_django * Add empty common/djangoapps/__init__.py to fix pytest collection * Fix pylint formatting violations * Exclude import_shims/ directory tree from linting
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
"""
|
|
Factories for Program Enrollment tests.
|
|
"""
|
|
|
|
|
|
from uuid import uuid4
|
|
|
|
import factory
|
|
from factory.django import DjangoModelFactory
|
|
from opaque_keys.edx.keys import CourseKey
|
|
|
|
from lms.djangoapps.program_enrollments import models
|
|
from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory
|
|
|
|
|
|
class ProgramEnrollmentFactory(DjangoModelFactory):
|
|
""" A Factory for the ProgramEnrollment model. """
|
|
class Meta(object):
|
|
model = models.ProgramEnrollment
|
|
|
|
user = factory.SubFactory(UserFactory)
|
|
external_user_key = None
|
|
program_uuid = factory.LazyFunction(uuid4)
|
|
curriculum_uuid = factory.LazyFunction(uuid4)
|
|
status = 'enrolled'
|
|
|
|
|
|
PROGRAM_COURSE_ENROLLMENT_DEFAULT_COURSE_KEY = (
|
|
CourseKey.from_string("course-v1:edX+DemoX+Demo_Course")
|
|
)
|
|
|
|
|
|
class ProgramCourseEnrollmentFactory(DjangoModelFactory):
|
|
""" A factory for the ProgramCourseEnrollment model. """
|
|
class Meta(object):
|
|
model = models.ProgramCourseEnrollment
|
|
|
|
program_enrollment = factory.SubFactory(ProgramEnrollmentFactory)
|
|
course_enrollment = factory.SubFactory(CourseEnrollmentFactory)
|
|
course_key = factory.LazyAttribute(
|
|
lambda pce: (
|
|
pce.course_enrollment.course_id
|
|
if pce.course_enrollment
|
|
else PROGRAM_COURSE_ENROLLMENT_DEFAULT_COURSE_KEY
|
|
)
|
|
)
|
|
status = 'active'
|
|
|
|
|
|
class CourseAccessRoleAssignmentFactory(DjangoModelFactory):
|
|
""" A factory for the CourseAccessRoleAssignment model. """
|
|
class Meta(object):
|
|
model = models.CourseAccessRoleAssignment
|
|
|
|
enrollment = factory.SubFactory(ProgramCourseEnrollmentFactory)
|
|
role = 'staff'
|