def test_redirect_to_handle_consent_enrollment_view(self):
     """
     ``redirect`` properly redirects to ``enterprise.views.HandleConsentEnrollmentView``.
     """
     self.request = mock.MagicMock(path=reverse(
         'enterprise_handle_consent_enrollment',
         args=[self.enterprise_customer.uuid, self.course_run_id]))
     assert views.RouterView().redirect(
         self.request, **self.kwargs) == 'handle_consent_enrollment_view'
 def test_get_raises_404_with_bad_course_key(self, catalog_api_mock):
     """
     ``get`` raises a 404 when a course run cannot be found given the provided course key.
     """
     fake_catalog_api.setup_course_catalog_api_client_mock(
         catalog_api_mock, course_overrides={'course_runs': []})
     kwargs = {
         'enterprise_uuid': str(self.enterprise_customer.uuid),
         'course_key': 'fake_course_key'
     }
     with self.assertRaises(Http404):
         views.RouterView().get(self.request, **kwargs)
 def test_get_raises_404_with_bad_catalog_client(self, catalog_api_mock):
     """
     ``get`` raises a 404 when the catalog client is not properly configured.
     """
     catalog_api_mock.return_value.get_course_details.side_effect = ImproperlyConfigured(
     )
     kwargs = {
         'enterprise_uuid': str(self.enterprise_customer.uuid),
         'course_key': 'fake_course_key'
     }
     with self.assertRaises(Http404):
         views.RouterView().get(self.request, **kwargs)
 def test_redirect_to_program_enrollment_view(self):
     """
     ``redirect`` properly redirects to ``enterprise.views.ProgramEnrollmentView``.
     """
     self.request = mock.MagicMock(path=reverse(
         'enterprise_program_enrollment_page',
         args=[self.enterprise_customer.uuid, '52ad909b-c57d-4ff1-bab3-999813a2479b']
     ))
     self.kwargs = {
         'enterprise_uuid': str(self.enterprise_customer.uuid),
         'program_uuid': '52ad909b-c57d-4ff1-bab3-999813a2479b'
     }
     assert views.RouterView().redirect(self.request, **self.kwargs) == 'program_enrollment_view'
 def test_get_raises_404_with_bad_catalog_client(self, catalog_api_mock, mock_global_context):
     """
     ``get`` responds with a 404 when the catalog client is not properly configured.
     """
     mock_global_context.return_value = {}
     catalog_api_mock.return_value.get_course_details.side_effect = ImproperlyConfigured()
     kwargs = {
         'enterprise_uuid': str(self.enterprise_customer.uuid),
         'course_key': 'fake_course_key'
     }
     with mock.patch('enterprise.views.render') as mock_render:
         mock_render.return_value = HttpResponse()  # Must return response to keep view happy
         views.RouterView().get(self.request, **kwargs)
         assert mock_render.call_args_list[0][1]['status'] == 404
 def test_get_raises_404_with_bad_course_key(self, catalog_api_mock,
                                             mock_global_context):
     """
     ``get`` responds with a 404 when a course run cannot be found given the provided course key.
     """
     mock_global_context.return_value = {}
     fake_catalog_api.setup_course_catalog_api_client_mock(
         catalog_api_mock, course_overrides={'course_runs': []})
     kwargs = {
         'enterprise_uuid': str(self.enterprise_customer.uuid),
         'course_key': 'fake_course_key'
     }
     with mock.patch('enterprise.views.render') as mock_render:
         mock_render.return_value = HttpResponse(
         )  # Must return response to keep view happy
         views.RouterView().get(self.request, **kwargs)
         assert mock_render.call_args_list[0][1]['status'] == 404
 def test_eligible_for_direct_audit_enrollment(
     self,
     request_has_audit_query_param,
     is_course_enrollment_url,
     customer_catalog_contains_course,
     has_course_mode,
     expected_eligibility,
     enrollment_api_client_mock,
 ):  # pylint: disable=invalid-name
     """
     ``eligible_for_direct_audit_enrollment`` returns whether the request is eligible for direct audit enrollment.
     """
     self.request.GET.get = mock.MagicMock(
         return_value=request_has_audit_query_param)
     self.request.path = self.request.path if is_course_enrollment_url else None
     self.enterprise_customer.catalog_contains_course = mock.MagicMock(
         return_value=customer_catalog_contains_course)
     enrollment_api_client_mock.return_value.has_course_mode.return_value = has_course_mode
     assert views.RouterView().eligible_for_direct_audit_enrollment(
         self.request, self.enterprise_customer,
         self.course_run_id) == expected_eligibility
 def test_redirect_to_course_enrollment_view(self):
     """
     ``redirect`` properly redirects to ``enterprise.views.CourseEnrollmentView``.
     """
     assert views.RouterView().redirect(
         self.request, **self.kwargs) == 'course_enrollment_view'