diff --git a/lti_consumer/lti_xblock.py b/lti_consumer/lti_xblock.py index a3b1fef9605201a7506a7521cc7ca168f6b8ac2b..3f60d03c3a328e83cb76877eb27efeae6646d18c 100644 --- a/lti_consumer/lti_xblock.py +++ b/lti_consumer/lti_xblock.py @@ -161,6 +161,7 @@ class LaunchTarget: @XBlock.needs('i18n') +@XBlock.needs('rebind_user') @XBlock.wants('user') @XBlock.wants('settings') @XBlock.wants('lti-configuration') @@ -1332,7 +1333,7 @@ class LtiConsumerXBlock(StudioEditableXBlockMixin, XBlock): Returns: dict: response to this request as dictated by the LtiConsumer """ - self.runtime.rebind_noauth_module_to_user(self, user) + self.runtime.service(self, 'rebind_user').rebind_noauth_module_to_user(self, user) args = [] if self.module_score: args.extend([self.module_score, self.score_comment]) @@ -1420,7 +1421,7 @@ class LtiConsumerXBlock(StudioEditableXBlockMixin, XBlock): else: scaled_score = None - self.runtime.rebind_noauth_module_to_user(self, user) + self.runtime.service(self, 'rebind_user').rebind_noauth_module_to_user(self, user) # have to publish for the progress page... self.runtime.publish( diff --git a/lti_consumer/tests/unit/test_lti_xblock.py b/lti_consumer/tests/unit/test_lti_xblock.py index 81178dfe379d3591632fcb27b651afea5c28ab22..604f3ab4c5933e3beed54fbb0d6508fb5085b761 100644 --- a/lti_consumer/tests/unit/test_lti_xblock.py +++ b/lti_consumer/tests/unit/test_lti_xblock.py @@ -1074,10 +1074,12 @@ class TestResultServiceHandler(TestLtiConsumerXBlock): mock_runtime = self.xblock.runtime = Mock() mock_lti_consumer = Mock() mock_user = Mock() + mock_rebind_user_service = Mock() + mock_runtime.service.return_value = mock_rebind_user_service self.xblock._result_service_get(mock_lti_consumer, mock_user) # pylint: disable=protected-access - mock_runtime.rebind_noauth_module_to_user.assert_called_with(self.xblock, mock_user) + mock_rebind_user_service.rebind_noauth_module_to_user.assert_called_with(self.xblock, mock_user) mock_lti_consumer.get_result.assert_called_with() @patch('lti_consumer.lti_xblock.LtiConsumerXBlock.module_score', PropertyMock(return_value=0.5)) @@ -1210,12 +1212,15 @@ class TestSetScore(TestLtiConsumerXBlock): def test_rebind_called(self): """ - Test that `runtime.rebind_noauth_module_to_user` is called + Test that `rebind_noauth_module_to_user` service is called """ + mock_rebind_user_service = Mock() + self.xblock.runtime.service = Mock() + self.xblock.runtime.service.return_value = mock_rebind_user_service user = Mock(user_id=FAKE_USER_ID) self.xblock.set_user_module_score(user, 0.92, 1.0, 'Great Job!') - self.xblock.runtime.rebind_noauth_module_to_user.assert_called_with(self.xblock, user) + mock_rebind_user_service.rebind_noauth_module_to_user.assert_called_with(self.xblock, user) def test_publish_grade_event_called(self): """