Check config model before returning expiration date

This commit is contained in:
Bill Filler
2018-12-06 15:22:11 -05:00
parent 6ef5305280
commit 7f18ab0374
2 changed files with 9 additions and 4 deletions

View File

@@ -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):

View File

@@ -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)