Commit 71ee9d3b by Phil McGachey

[LTI Provider] Bugfix in LtiConsumer handling code

The line below was left in during the refactoring shuffle from PR #8205, and causes
an issue in a corner case where an LTI launch provides an instance GUID where there
wasn't one already set for the consumer. This change fixes the bug, and adds a test
to prevent it from recurring.
parent 0fe41374
......@@ -62,7 +62,6 @@ class LtiConsumer(models.Model):
if not consumer:
consumer = LtiConsumer.objects.get(
consumer_key=consumer_key,
instance_guid=instance_guid if instance_guid else None
)
# Add the instance_guid field to the model if it's not there already.
......
......@@ -257,6 +257,17 @@ class LtiRunTest(TestCase):
views.lti_run(request)
self.assertNotIn(views.LTI_SESSION_KEY, request.session)
@patch('lti_provider.views.render_courseware')
def test_lti_consumer_record_supplemented_with_guid(self, _render):
request = build_run_request()
request.session[views.LTI_SESSION_KEY]['tool_consumer_instance_guid'] = 'instance_guid'
with self.assertNumQueries(4):
views.lti_run(request)
consumer = models.LtiConsumer.objects.get(
consumer_key=LTI_DEFAULT_PARAMS['oauth_consumer_key']
)
self.assertEqual(consumer.instance_guid, 'instance_guid')
class RenderCoursewareTest(TestCase):
"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment