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