feat: advertised_start field added to CourseRunSerializer (#36726)
This commit is contained in:
@@ -97,6 +97,7 @@ class CourseRunSerializer(serializers.Serializer):
|
||||
max_digits=5, decimal_places=2, source="course_overview.lowest_passing_grade"
|
||||
)
|
||||
startDate = serializers.DateTimeField(source="course_overview.start")
|
||||
advertisedStart = serializers.DateTimeField(source="course_overview.advertised_start")
|
||||
endDate = serializers.DateTimeField(source="course_overview.end")
|
||||
homeUrl = serializers.SerializerMethodField()
|
||||
marketingUrl = serializers.URLField(
|
||||
|
||||
@@ -74,7 +74,10 @@ class LearnerDashboardBaseTest(SharedModuleStoreTestCase):
|
||||
|
||||
def create_test_enrollment(self, course_mode=CourseMode.AUDIT):
|
||||
"""Create a test user, course, and enrollment. Return the enrollment."""
|
||||
course = CourseFactory(self_paced=True)
|
||||
course = CourseFactory(
|
||||
self_paced=True,
|
||||
advertised_start="Winter 2015",
|
||||
)
|
||||
CourseModeFactory(
|
||||
course_id=course.id,
|
||||
mode_slug=course_mode,
|
||||
|
||||
@@ -64,9 +64,12 @@ def datetime_to_django_format(datetime_obj):
|
||||
return datetime_obj.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
|
||||
|
||||
def create_test_enrollment(user, course_mode=CourseMode.AUDIT):
|
||||
def create_test_enrollment(user, course_mode=CourseMode.AUDIT, advertised_start=None):
|
||||
"""Create a test user, course, course overview, and enrollment. Return the enrollment."""
|
||||
course = CourseFactory(self_paced=True)
|
||||
course = CourseFactory(
|
||||
self_paced=True,
|
||||
advertised_start=advertised_start,
|
||||
)
|
||||
|
||||
CourseModeFactory(
|
||||
course_id=course.id,
|
||||
|
||||
@@ -576,6 +576,35 @@ class TestDashboardView(BaseTestDashboardView):
|
||||
|
||||
assert expected_keys == response_data.keys()
|
||||
|
||||
@patch.dict(settings.FEATURES, ENTERPRISE_ENABLED=False)
|
||||
def test_response_course_advertised_start(self):
|
||||
"""Basic test for correct response structure"""
|
||||
|
||||
# Given I am logged in
|
||||
self.log_in()
|
||||
|
||||
# Creating course
|
||||
advertised_start = "Winter 2025"
|
||||
create_test_enrollment(
|
||||
self.user, advertised_start=advertised_start
|
||||
)
|
||||
|
||||
# When I request the dashboard
|
||||
response = self.client.get(self.view_url)
|
||||
|
||||
# Then I get the expected success response
|
||||
assert response.status_code == 200
|
||||
|
||||
response_data = json.loads(response.content)
|
||||
assert "courses" in response_data
|
||||
assert len(response_data["courses"]) > 0
|
||||
|
||||
for course in response_data["courses"]:
|
||||
assert "courseRun" in course
|
||||
course_run = course["courseRun"]
|
||||
assert "advertisedStart" in course_run
|
||||
assert course_run["advertisedStart"] == advertised_start
|
||||
|
||||
@patch.dict(settings.FEATURES, ENTERPRISE_ENABLED=False)
|
||||
@patch("lms.djangoapps.learner_home.views.get_user_account_confirmation_info")
|
||||
def test_email_confirmation(self, mock_user_conf_info):
|
||||
|
||||
Reference in New Issue
Block a user