Skip to content

Commit 58a1784

Browse files
authored
feat: advertised_start field added to CourseRunSerializer (#36726)
1 parent d1854d0 commit 58a1784

4 files changed

Lines changed: 39 additions & 3 deletions

File tree

lms/djangoapps/learner_home/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ class CourseRunSerializer(serializers.Serializer):
9797
max_digits=5, decimal_places=2, source="course_overview.lowest_passing_grade"
9898
)
9999
startDate = serializers.DateTimeField(source="course_overview.start")
100+
advertisedStart = serializers.DateTimeField(source="course_overview.advertised_start")
100101
endDate = serializers.DateTimeField(source="course_overview.end")
101102
homeUrl = serializers.SerializerMethodField()
102103
marketingUrl = serializers.URLField(

lms/djangoapps/learner_home/test_serializers.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ def setUpClass(cls):
7474

7575
def create_test_enrollment(self, course_mode=CourseMode.AUDIT):
7676
"""Create a test user, course, and enrollment. Return the enrollment."""
77-
course = CourseFactory(self_paced=True)
77+
course = CourseFactory(
78+
self_paced=True,
79+
advertised_start="Winter 2015",
80+
)
7881
CourseModeFactory(
7982
course_id=course.id,
8083
mode_slug=course_mode,

lms/djangoapps/learner_home/test_utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,12 @@ def datetime_to_django_format(datetime_obj):
6464
return datetime_obj.strftime("%Y-%m-%dT%H:%M:%SZ")
6565

6666

67-
def create_test_enrollment(user, course_mode=CourseMode.AUDIT):
67+
def create_test_enrollment(user, course_mode=CourseMode.AUDIT, advertised_start=None):
6868
"""Create a test user, course, course overview, and enrollment. Return the enrollment."""
69-
course = CourseFactory(self_paced=True)
69+
course = CourseFactory(
70+
self_paced=True,
71+
advertised_start=advertised_start,
72+
)
7073

7174
CourseModeFactory(
7275
course_id=course.id,

lms/djangoapps/learner_home/test_views.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,35 @@ def test_response_structure(self):
576576

577577
assert expected_keys == response_data.keys()
578578

579+
@patch.dict(settings.FEATURES, ENTERPRISE_ENABLED=False)
580+
def test_response_course_advertised_start(self):
581+
"""Basic test for correct response structure"""
582+
583+
# Given I am logged in
584+
self.log_in()
585+
586+
# Creating course
587+
advertised_start = "Winter 2025"
588+
create_test_enrollment(
589+
self.user, advertised_start=advertised_start
590+
)
591+
592+
# When I request the dashboard
593+
response = self.client.get(self.view_url)
594+
595+
# Then I get the expected success response
596+
assert response.status_code == 200
597+
598+
response_data = json.loads(response.content)
599+
assert "courses" in response_data
600+
assert len(response_data["courses"]) > 0
601+
602+
for course in response_data["courses"]:
603+
assert "courseRun" in course
604+
course_run = course["courseRun"]
605+
assert "advertisedStart" in course_run
606+
assert course_run["advertisedStart"] == advertised_start
607+
579608
@patch.dict(settings.FEATURES, ENTERPRISE_ENABLED=False)
580609
@patch("lms.djangoapps.learner_home.views.get_user_account_confirmation_info")
581610
def test_email_confirmation(self, mock_user_conf_info):

0 commit comments

Comments
 (0)