diff --git a/lms/djangoapps/support/tests/test_views.py b/lms/djangoapps/support/tests/test_views.py index 758e51fdf5..4bf71a16d8 100644 --- a/lms/djangoapps/support/tests/test_views.py +++ b/lms/djangoapps/support/tests/test_views.py @@ -2359,10 +2359,7 @@ class TestResetCourseViewPost(SupportViewTestCase): course_id=self.course.id, user=self.user ) - CourseResetCourseOptIn.objects.create( - course_id=self.course_id, - active=True - ) + self.opt_in = CourseResetCourseOptInFactory.create(course_id=self.course.id) self.other_course = CourseFactory.create( org='x', @@ -2422,7 +2419,9 @@ class TestResetCourseViewPost(SupportViewTestCase): self.assertEqual(response.status_code, 200) def test_course_reset_dupe(self): - response = self.client.post(self._url(username=self.user.username), data={'course_id': self.course_id}) - self.assertEqual(response.status_code, 201) - resp = self.client.post(self._url(username=self.user.username), data={'course_id': self.course_id}) - self.assertEqual(resp.status_code, 204) + CourseResetAuditFactory.create( + course=self.opt_in, + course_enrollment=self.enrollment, + ) + response2 = self.client.post(self._url(username=self.user.username), data={'course_id': self.course_id}) + self.assertEqual(response2.status_code, 204) diff --git a/lms/djangoapps/support/views/course_reset.py b/lms/djangoapps/support/views/course_reset.py index 6ed705548f..c8d4abb2ce 100644 --- a/lms/djangoapps/support/views/course_reset.py +++ b/lms/djangoapps/support/views/course_reset.py @@ -95,7 +95,6 @@ class CourseResetAPIView(APIView): }) return Response(result) - @method_decorator(require_support_permission) def post(self, request, username_or_email): """ @@ -126,22 +125,25 @@ class CourseResetAPIView(APIView): course_overview = enrollment.course_overview course_reset_audit = CourseResetAudit.objects.filter(course_enrollment=enrollment).first() - if course_reset_audit and course_reset_audit.status == CourseResetAudit.CourseResetStatus.FAILED and not user_passed: + if course_reset_audit and ( + course_reset_audit.status == CourseResetAudit.CourseResetStatus.FAILED + and not user_passed + ): course_reset_audit.status = CourseResetAudit.CourseResetStatus.ENQUEUED course_reset_audit.save() - status = f"In progress - Started on {course_reset_audit.modified} by {course_reset_audit.reset_by.username}" # Call celery task resp = { 'course_id': course_id, - 'status': status, + 'status': course_reset_audit.status_message(), 'can_reset': False, 'display_name': course_overview.display_name } return Response(resp, status=200) - elif course_reset_audit and \ - (course_reset_audit.status == CourseResetAudit.CourseResetStatus.IN_PROGRESS or - course_reset_audit.status == CourseResetAudit.CourseResetStatus.ENQUEUED): + elif course_reset_audit and course_reset_audit.status in ( + CourseResetAudit.CourseResetStatus.IN_PROGRESS, + CourseResetAudit.CourseResetStatus.ENQUEUED + ): return Response(None, status=204) if enrollment and opt_in_course and not user_passed: @@ -150,15 +152,14 @@ class CourseResetAPIView(APIView): course_enrollment=enrollment, reset_by=request.user, ) - status = f"In progress - Started on {course_reset_audit.modified} by {course_reset_audit.reset_by.username}" resp = { 'course_id': course_id, - 'status': status, + 'status': course_reset_audit.status_message(), 'can_reset': False, 'display_name': course_overview.display_name } - # Call celery task + # Call celery task return Response(resp, status=201) else: return Response(None, status=400)