Esempio n. 1
0
 def test_valid_launch(self, _authenticate, render):
     """
     Verifies that the LTI launch succeeds when passed a valid request.
     """
     request = build_launch_request()
     views.lti_launch(request, str(COURSE_KEY), str(USAGE_KEY))
     render.assert_called_with(request, USAGE_KEY)
Esempio n. 2
0
    def test_lti_consumer_record_supplemented_with_guid(self, _render):
        self.mock_verify.return_value = False

        request = build_launch_request(LTI_OPTIONAL_PARAMS)
        with self.assertNumQueries(3):
            views.lti_launch(request, None, None)
        consumer = models.LtiConsumer.objects.get(
            consumer_key=LTI_DEFAULT_PARAMS['oauth_consumer_key'])
        self.assertEqual(consumer.instance_guid, u'consumer instance guid')
Esempio n. 3
0
 def test_outcome_service_registered(self, _authenticate, store_params,
                                     _render):
     """
     Verifies that the LTI launch succeeds when passed a valid request.
     """
     request = build_launch_request()
     views.lti_launch(request, six.text_type(COURSE_PARAMS['course_key']),
                      six.text_type(COURSE_PARAMS['usage_key']))
     store_params.assert_called_with(ALL_PARAMS, request.user,
                                     self.consumer)
Esempio n. 4
0
 def test_valid_launch_with_optional_params(self, _authenticate,
                                            store_params, _render):
     """
     Verifies that the LTI launch succeeds when passed a valid request.
     """
     request = build_launch_request(extra_post_data=LTI_OPTIONAL_PARAMS)
     views.lti_launch(request, str(COURSE_KEY), str(USAGE_KEY))
     store_params.assert_called_with(
         dict(list(ALL_PARAMS.items()) + list(LTI_OPTIONAL_PARAMS.items())),
         request.user, self.consumer)
Esempio n. 5
0
 def test_launch_with_disabled_feature_flag(self):
     """
     Verifies that the LTI launch will fail if the ENABLE_LTI_PROVIDER flag
     is not set
     """
     with patch.dict('django.conf.settings.FEATURES', {'ENABLE_LTI_PROVIDER': False}):
         request = build_launch_request()
         response = views.lti_launch(request, None, None)
         assert response.status_code == 403
Esempio n. 6
0
    def test_forbidden_if_signature_fails(self):
        """
        Verifies that the view returns Forbidden if the LTI OAuth signature is
        incorrect.
        """
        self.mock_verify.return_value = False

        request = build_launch_request()
        response = views.lti_launch(request, None, None)
        self.assertEqual(response.status_code, 403)
        self.assertEqual(response.status_code, 403)
Esempio n. 7
0
 def launch_with_missing_parameter(self, missing_param):
     """
     Helper method to remove a parameter from the LTI launch and call the view
     """
     request = build_launch_request(param_to_delete=missing_param)
     return views.lti_launch(request, None, None)