Check config model before returning expiration date
This commit is contained in:
@@ -8,6 +8,7 @@ from rest_framework.reverse import reverse
|
||||
from lms.djangoapps.certificates.api import certificate_downloadable_status
|
||||
from courseware.access import has_access
|
||||
from openedx.features.course_duration_limits.access import get_user_course_expiration_date
|
||||
from openedx.features.course_duration_limits.models import CourseDurationLimitConfig
|
||||
from student.models import CourseEnrollment, User
|
||||
from util.course import get_encoded_course_sharing_utm_params, get_link_for_about_page
|
||||
|
||||
@@ -92,6 +93,9 @@ class CourseEnrollmentSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
Returns expiration date for a course audit expiration, if any or null
|
||||
"""
|
||||
if not CourseDurationLimitConfig.enabled_for_enrollment(user=model.user, course_key=model.course.id):
|
||||
return None
|
||||
|
||||
return get_user_course_expiration_date(model.user, model.course)
|
||||
|
||||
def get_certificate(self, model):
|
||||
|
||||
@@ -277,7 +277,7 @@ class TestUserEnrollmentApi(UrlResetMixin, MobileAPITestCase, MobileAuthUserTest
|
||||
self.create_enrollment(expired)
|
||||
return self.api_response(api_version=api_version).data
|
||||
|
||||
def _assert_enrollment_results(self, api_version, courses, num_courses_returned):
|
||||
def _assert_enrollment_results(self, api_version, courses, num_courses_returned, gating_enabled=True):
|
||||
self.assertEqual(len(courses), num_courses_returned)
|
||||
|
||||
if api_version == API_V05:
|
||||
@@ -285,7 +285,8 @@ class TestUserEnrollmentApi(UrlResetMixin, MobileAPITestCase, MobileAuthUserTest
|
||||
self.assertNotIn('audit_access_expires', courses[0])
|
||||
else:
|
||||
self.assertIn('audit_access_expires', courses[0])
|
||||
self.assertIsNotNone(courses[0].get('audit_access_expires'))
|
||||
if gating_enabled:
|
||||
self.assertIsNotNone(courses[0].get('audit_access_expires'))
|
||||
|
||||
@ddt.data(
|
||||
(API_V05, True, 0),
|
||||
@@ -301,7 +302,7 @@ class TestUserEnrollmentApi(UrlResetMixin, MobileAPITestCase, MobileAuthUserTest
|
||||
'''
|
||||
CourseDurationLimitConfig.objects.create(enabled=True, enabled_as_of=datetime.datetime(2018, 1, 1))
|
||||
courses = self._get_enrollment_data(api_version, expired)
|
||||
self._assert_enrollment_results(api_version, courses, num_courses_returned)
|
||||
self._assert_enrollment_results(api_version, courses, num_courses_returned, True)
|
||||
|
||||
@ddt.data(
|
||||
(API_V05, True, 1),
|
||||
@@ -317,7 +318,7 @@ class TestUserEnrollmentApi(UrlResetMixin, MobileAPITestCase, MobileAuthUserTest
|
||||
'''
|
||||
CourseDurationLimitConfig.objects.create(enabled=False)
|
||||
courses = self._get_enrollment_data(api_version, expired)
|
||||
self._assert_enrollment_results(api_version, courses, num_courses_returned)
|
||||
self._assert_enrollment_results(api_version, courses, num_courses_returned, False)
|
||||
|
||||
|
||||
@attr(shard=9)
|
||||
|
||||
Reference in New Issue
Block a user