[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.
This commit is contained in:
Phil McGachey
2015-06-03 12:58:19 -04:00
parent 0fe413744f
commit 71ee9d3bb8
2 changed files with 11 additions and 1 deletions

View File

@@ -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.

View File

@@ -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):
"""