Skip to content

Commit 2fcae65

Browse files
committed
test: fixed test cases
1 parent 625f9fa commit 2fcae65

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

course_discovery/apps/api/tests/test_utils.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def test_generate_data_for_studio_api__external_course_enrollment_dates(self):
197197
exec_ed_type = CourseTypeFactory(slug=CourseType.EXECUTIVE_EDUCATION_2U)
198198
run = CourseRunFactory(course=CourseFactory(type=exec_ed_type))
199199
with mock.patch('course_discovery.apps.api.utils.logger') as mock_logger:
200-
expected_data = self.make_studio_data(run, add_pacing=False, add_schedule=False, add_enrollment_dates=True)
200+
expected_data = self.make_studio_data(run, add_pacing=False, add_schedule=True, add_enrollment_dates=True)
201201
output_data = StudioAPI.generate_data_for_studio_api(run, False)
202202
assert output_data == expected_data
203203
mock_logger.info.assert_called_with(
@@ -211,14 +211,12 @@ def test_generate_data_for_studio_api__external_course_missing_enrollment_dates(
211211
exec_ed_type = CourseTypeFactory(slug=CourseType.EXECUTIVE_EDUCATION_2U)
212212
run = CourseRunFactory(course=CourseFactory(type=exec_ed_type), enrollment_start=None, enrollment_end=None)
213213
with mock.patch('course_discovery.apps.api.utils.logger') as mock_logger:
214-
expected_data = self.make_studio_data(run, add_pacing=False, add_schedule=False)
214+
expected_data = self.make_studio_data(run, add_pacing=False, add_schedule=True, add_enrollment_dates=False)
215215
output_data = StudioAPI.generate_data_for_studio_api(run, False)
216216
assert output_data == expected_data
217217

218218
with self.assertRaises(AssertionError):
219-
mock_logger.info.assert_called_with(
220-
f'Enrollment information added to data {output_data} for course run {run.key}'
221-
)
219+
mock_logger.info.assert_called()
222220

223221
def test_generate_data_for_studio_api__non_external_course_no_start_end_on_update(self):
224222
"""Test that start/end are NOT included when updating a non-external course."""
@@ -235,13 +233,10 @@ def test_generate_data_for_studio_api__external_course_start_end_on_update(self)
235233
"""Test that start/end are included for external course on update."""
236234
exec_ed_type = CourseTypeFactory(slug=CourseType.EXECUTIVE_EDUCATION_2U)
237235
run = CourseRunFactory(course=CourseFactory(type=exec_ed_type))
238-
239236
expected_data = self.make_studio_data(run, add_pacing=False, add_schedule=True, add_enrollment_dates=True)
240-
241237
with mock.patch('course_discovery.apps.api.utils.logger') as mock_logger:
242238
output_data = StudioAPI.generate_data_for_studio_api(run, creating=False)
243239
self.assertEqual(output_data, expected_data)
244-
245240
mock_logger.info.assert_called_with(
246241
f'Enrollment information added to data {output_data} for course run {run.key}'
247242
)

course_discovery/apps/api/utils.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,9 @@ def generate_data_for_studio_api(cls, course_run, creating, user=None):
255255
key = CourseKey.from_string(course_run.key)
256256
is_external = course_run.course.is_external_course
257257
# start, end, and pacing are not sent on updates - Studio is where users edit them
258-
#Include start and end only if creating or if it's an external course during update
259-
start = course_run.start if creating or is_external else None
260-
end = course_run.end if creating or is_external else None
258+
# Include start and end only if creating or if it's an external course during update
259+
start = course_run.start if creating or is_external else None
260+
end = course_run.end if creating or is_external else None
261261
pacing = course_run.pacing_type if creating else None
262262
enrollment_start = course_run.enrollment_start
263263
enrollment_end = course_run.enrollment_end
@@ -301,7 +301,7 @@ def generate_data_for_studio_api(cls, course_run, creating, user=None):
301301
# But when the course run is created, in Studio or Discovery, the enrollment dates are not taken as input.
302302
# It is better to keep the flow consistent across places.
303303
# Allow sending enrollment start and end dates as part of Update only.
304-
# An empty dictionary is created. This prevents overwriting or throwing a KeyError when updating enrollment-related schedule fields.
304+
# Using setdefault + update avoids overwriting and prevents KeyErrors.
305305
data.setdefault('schedule', {})
306306
data['schedule'].update({
307307
'enrollment_start': serialize_datetime(course_run.enrollment_start),

course_discovery/apps/course_metadata/data_loaders/csv_loader.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,10 @@ def update_course_run_api_request_data(self, course_run_data, course_run, course
481481
'prices': self.get_pricing_representation(course_run_data['verified_price'], course_type),
482482
'staff': staff_uuids,
483483
'draft': is_draft,
484-
'start': self.get_formatted_datetime_string(f"{course_run_data['start_date']} {course_run_data['start_time']}"),
485-
'end': self.get_formatted_datetime_string(f"{course_run_data['end_date']} {course_run_data['end_time']}"),
484+
'start': self.get_formatted_datetime_string(
485+
f"{course_run_data['start_date']} {course_run_data['start_time']}"),
486+
'end': self.get_formatted_datetime_string(
487+
f"{course_run_data['end_date']} {course_run_data['end_time']}"),
486488

487489
'weeks_to_complete': course_run_data['length'],
488490
'min_effort': course_run_data['minimum_effort'],

0 commit comments

Comments
 (0)