Esempio n. 1
0
    def test_return_url_with_messages(self):
        '''
        Should generate a return url with messages.
        '''
        tp = create_tp()
        self.assertIsNone(tp.build_return_url())

        tp = create_tp(lp={
            'launch_presentation_return_url': 'http://foo.edu/done'
        })
        self.assertEqual(tp.build_return_url(), 'http://foo.edu/done')

        tp = create_tp(lp={
            'launch_presentation_return_url': 'http://foo.edu/done',
            'lti_errormsg': 'user error',
            'lti_errorlog': 'lms error',
            'lti_msg': 'user message',
            'lti_log': 'lms message'
        })
        return_url = tp.build_return_url()
        parsed = urlparse.urlsplit(return_url)
        self.assertEqual(parsed.hostname, 'foo.edu')
        self.assertEqual(parsed.path, '/done')
        self.assertEqual(parse_qs(parsed.query), {
            'lti_errormsg': 'user error',
            'lti_errorlog': 'lms error',
            'lti_msg': 'user message',
            'lti_log': 'lms message'
        })
 def test_launch_request_with_qs(self):
     """
     test that qs params in launch url are ok
     """
     launch_params = {
         'lti_version': 'abc',
         'lti_message_type': 'def',
         'resource_link_id': '123'
     }
     tc = ToolConsumer('client_key',
                       'client_secret',
                       launch_url='http://example.edu/foo?bar=1',
                       params=launch_params)
     launch_req = tc.generate_launch_request(nonce='wxyz7890',
                                             timestamp='2345678901')
     got = parse_qs(unquote(launch_req.body))
     correct = launch_params.copy()
     correct.update({
         'oauth_nonce': 'wxyz7890',
         'oauth_timestamp': '2345678901',
         'oauth_version': '1.0',
         'oauth_signature_method': 'HMAC-SHA1',
         'oauth_consumer_key': 'client_key',
         'oauth_signature': 'UH2l86Wq/g5Mu64GpCRcec6tEYY=',
     })
     self.assertEqual(got, correct)
    def test_generate_launch_request(self):
        launch_params = {
            'lti_version': 'foo',
            'lti_message_type': 'bar',
            'resource_link_id': 'baz'
        }
        tc = ToolConsumer('client_key',
                          'client_secret',
                          launch_url='http://example.edu/',
                          params=launch_params)
        launch_req = tc.generate_launch_request(nonce='abcd1234',
                                                timestamp='1234567890')

        self.assertIsInstance(launch_req, PreparedRequest)

        got = parse_qs(unquote(launch_req.body))
        correct = launch_params.copy()
        correct.update({
            'oauth_nonce': 'abcd1234',
            'oauth_timestamp': '1234567890',
            'oauth_version': '1.0',
            'oauth_signature_method': 'HMAC-SHA1',
            'oauth_consumer_key': 'client_key',
            'oauth_signature': 'u2xlj 1gF4y 6gKHNeiL9cN3tOI=',
        })

        self.assertEqual(got, correct)
Esempio n. 4
0
 def test_error_redirect(self):
     from dce_lti_py.contrib.django import DjangoToolProvider
     tp = create_tp(lp={
         'launch_presentation_return_url': 'http://example.edu/bar'
     }, tp_class=DjangoToolProvider)
     redirect_retval = tp.error_redirect(errormsg='abcd', errorlog='efgh')
     self.assertEqual(redirect_retval, 'foo')
     redirect_url, = mock.shortcuts.redirect.call_args[0]
     parsed = urlparse.urlsplit(redirect_url)
     self.assertEqual(parse_qs(parsed.query), {
         'lti_errormsg': 'abcd',
         'lti_errorlog': 'efgh'
     })
Esempio n. 5
0
    def test_generate_launch_request(self):
        launch_params = {"lti_version": "foo", "lti_message_type": "bar", "resource_link_id": "baz"}
        tc = ToolConsumer("client_key", "client_secret", launch_url="http://example.edu/", params=launch_params)
        launch_req = tc.generate_launch_request(nonce="abcd1234", timestamp="1234567890")

        self.assertIsInstance(launch_req, PreparedRequest)

        got = parse_qs(unquote(launch_req.body))
        correct = launch_params.copy()
        correct.update(
            {
                "oauth_nonce": "abcd1234",
                "oauth_timestamp": "1234567890",
                "oauth_version": "1.0",
                "oauth_signature_method": "HMAC-SHA1",
                "oauth_consumer_key": "client_key",
                "oauth_signature": "u2xlj 1gF4y 6gKHNeiL9cN3tOI=",
            }
        )

        self.assertEqual(got, correct)
Esempio n. 6
0
 def test_launch_request_with_qs(self):
     """
     test that qs params in launch url are ok
     """
     launch_params = {"lti_version": "abc", "lti_message_type": "def", "resource_link_id": "123"}
     tc = ToolConsumer(
         "client_key", "client_secret", launch_url="http://example.edu/foo?bar=1", params=launch_params
     )
     launch_req = tc.generate_launch_request(nonce="wxyz7890", timestamp="2345678901")
     got = parse_qs(unquote(launch_req.body))
     correct = launch_params.copy()
     correct.update(
         {
             "oauth_nonce": "wxyz7890",
             "oauth_timestamp": "2345678901",
             "oauth_version": "1.0",
             "oauth_signature_method": "HMAC-SHA1",
             "oauth_consumer_key": "client_key",
             "oauth_signature": "UH2l86Wq/g5Mu64GpCRcec6tEYY=",
         }
     )
     self.assertEqual(got, correct)