diff --git a/lms/djangoapps/verify_student/tests/test_views.py b/lms/djangoapps/verify_student/tests/test_views.py index 5dfb00c0fe..62e339b56f 100644 --- a/lms/djangoapps/verify_student/tests/test_views.py +++ b/lms/djangoapps/verify_student/tests/test_views.py @@ -717,6 +717,14 @@ class TestMidCourseReverifyView(ModuleStoreTestCase): # enrolled in a verified course, and the window is open self.assertEquals(response.status_code, 200) + @patch('verify_student.views.render_to_response', render_mock) + def test_midcourse_reverify_invalid_course_id(self): + # if course id is invalid return 400 + invalid_course_key = CourseLocator('edx', 'not', 'valid') + url = reverse('verify_student_midcourse_reverify', kwargs={'course_id': unicode(invalid_course_key)}) + response = self.client.get(url) + self.assertEqual(response.status_code, 404) + @override_settings(MODULESTORE=MODULESTORE_CONFIG) class TestReverificationBanner(ModuleStoreTestCase): diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index 4e5f77505b..69d07f9ca7 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -1087,6 +1087,9 @@ class MidCourseReverifyView(View): """ course_id = CourseKey.from_string(course_id) course = modulestore().get_course(course_id) + if course is None: + raise Http404 + course_enrollment = CourseEnrollment.get_or_create_enrollment(request.user, course_id) course_enrollment.update_enrollment(mode="verified") course_enrollment.emit_event(EVENT_NAME_USER_ENTERED_MIDCOURSE_REVERIFY_VIEW)