* 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
56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
"""
|
|
Test helpers for the course experience.
|
|
"""
|
|
|
|
|
|
from datetime import timedelta
|
|
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.utils.timezone import now
|
|
|
|
from common.djangoapps.course_modes.models import CourseMode
|
|
|
|
TEST_COURSE_PRICE = 50
|
|
|
|
|
|
def add_course_mode(course, mode_slug=CourseMode.VERIFIED,
|
|
mode_display_name='Verified Certificate', upgrade_deadline_expired=False):
|
|
"""
|
|
Add a course mode to the test course.
|
|
|
|
Args:
|
|
course
|
|
mode_slug (str): the slug of the mode to add
|
|
mode_display_name (str): the display name of the mode to add
|
|
upgrade_deadline_expired (bool): whether the upgrade deadline has passed
|
|
"""
|
|
upgrade_exp_date = now()
|
|
if upgrade_deadline_expired:
|
|
upgrade_exp_date = upgrade_exp_date - timedelta(days=21)
|
|
else:
|
|
upgrade_exp_date = upgrade_exp_date + timedelta(days=21)
|
|
|
|
CourseMode(
|
|
course_id=course.id,
|
|
mode_slug=mode_slug,
|
|
mode_display_name=mode_display_name,
|
|
min_price=TEST_COURSE_PRICE,
|
|
_expiration_datetime=upgrade_exp_date,
|
|
).save()
|
|
|
|
|
|
def remove_course_mode(course, mode_slug):
|
|
"""
|
|
Remove a course mode from the test course if it exists in the course.
|
|
|
|
Args:
|
|
course
|
|
mode_slug (str): slug of the mode to remove
|
|
"""
|
|
try:
|
|
mode = CourseMode.objects.get(course_id=course.id, mode_slug=mode_slug)
|
|
except ObjectDoesNotExist:
|
|
pass
|
|
|
|
mode.delete()
|