Skip to content

Commit

Permalink
fix: unenrollment/deactivate_enrollment without EdX-Api-Key
Browse files Browse the repository at this point in the history
  • Loading branch information
mudassir-hafeez committed May 16, 2024
1 parent d2affc3 commit d3b8678
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
4 changes: 2 additions & 2 deletions courseware/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -739,10 +739,10 @@ def unenroll_edx_course_run(run_enrollment):
EdxApiEnrollErrorException: Raised if the underlying edX API HTTP request fails
UnknownEdxApiEnrollException: Raised if an unknown error was encountered during the edX API request
"""
edx_client = get_edx_api_client(run_enrollment.user)
edx_client = get_edx_api_service_client()
try:
deactivated_enrollment = edx_client.enrollments.deactivate_enrollment(
run_enrollment.run.courseware_id
run_enrollment.run.courseware_id, username=run_enrollment.user.username
)
except HTTPError as exc:
raise EdxApiEnrollErrorException(run_enrollment.user, run_enrollment.run, exc) # noqa: B904, TRY200
Expand Down
13 changes: 9 additions & 4 deletions courseware/api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -716,14 +716,19 @@ def test_unenroll_edx_course_run(mocker):
mock_client = mocker.MagicMock()
run_enrollment = CourseRunEnrollmentFactory.create(edx_enrolled=True)
courseware_id = run_enrollment.run.courseware_id
enroll_return_value = mocker.Mock(json={"course_id": courseware_id})
username = run_enrollment.user.username
enroll_return_value = mocker.Mock(
json={"course_id": courseware_id, "user": username}
)
mock_client.enrollments.deactivate_enrollment = mocker.Mock(
return_value=enroll_return_value
)
mocker.patch("courseware.api.get_edx_api_client", return_value=mock_client)
mocker.patch("courseware.api.get_edx_api_service_client", return_value=mock_client)
deactivated_enrollment = unenroll_edx_course_run(run_enrollment)

mock_client.enrollments.deactivate_enrollment.assert_called_once_with(courseware_id)
mock_client.enrollments.deactivate_enrollment.assert_called_once_with(
courseware_id, username=username
)
assert deactivated_enrollment == enroll_return_value


Expand All @@ -744,7 +749,7 @@ def test_unenroll_edx_course_run_failure(
mock_client.enrollments.deactivate_enrollment = mocker.Mock(
side_effect=client_exception_raised
)
mocker.patch("courseware.api.get_edx_api_client", return_value=mock_client)
mocker.patch("courseware.api.get_edx_api_service_client", return_value=mock_client)
with pytest.raises(expected_exception):
unenroll_edx_course_run(run_enrollment)

Expand Down

0 comments on commit d3b8678

Please sign in to comment.