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)
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')
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)
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)
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
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)
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)