Skip to content

Commit fca77d7

Browse files
committed
fix: return certificate_available_date in courses list API response
1 parent 03920db commit fca77d7

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

lms/djangoapps/course_api/serializers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,12 @@ def get_blocks_url(self, course_overview):
139139
])
140140
return self.context['request'].build_absolute_uri(base_url)
141141

142+
def to_representation(self, instance):
143+
response = super().to_representation(instance)
144+
if can_show_certificate_available_date_field(instance):
145+
response['certificate_available_date'] = instance.certificate_available_date
146+
return response
147+
142148

143149
class CourseDetailSerializer(CourseSerializer): # pylint: disable=abstract-method
144150
"""

lms/djangoapps/course_api/tests/test_serializers.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,31 @@ def test_pacing(self, self_paced, expected_pacing):
142142
result = self._get_result(course)
143143
assert result['pacing'] == expected_pacing
144144

145+
@mock.patch(
146+
"lms.djangoapps.course_api.serializers.can_show_certificate_available_date_field",
147+
return_value=True,
148+
)
149+
def test_certificate_available_date_included(self, _mock):
150+
"""Test that certificate_available_date is included when the field should be shown."""
151+
course = self.create_course()
152+
result = self._get_result(course)
153+
assert 'certificate_available_date' in result
154+
actual = result['certificate_available_date']
155+
if isinstance(actual, datetime):
156+
assert actual.strftime('%Y-%m-%dT%H:%M:%SZ') == '2015-08-14T00:00:00Z'
157+
else:
158+
assert actual == '2015-08-14T00:00:00Z'
159+
160+
@mock.patch(
161+
"lms.djangoapps.course_api.serializers.can_show_certificate_available_date_field",
162+
return_value=False,
163+
)
164+
def test_certificate_available_date_excluded(self, _mock):
165+
"""Test that certificate_available_date is excluded when the field should not be shown."""
166+
course = self.create_course()
167+
result = self._get_result(course)
168+
assert 'certificate_available_date' not in result
169+
145170

146171
class TestCourseDetailSerializer(TestCourseSerializer): # pylint: disable=test-inherits-tests
147172
"""

0 commit comments

Comments
 (0)