Commit f0804390 by Calen Pennington

Merge pull request #12673 from cpennington/reset-signature-validator-mocks

Mock SignatureValidator.verify using patch so that the mock is unset …
parents 12d23980 1537f040
...@@ -10,7 +10,6 @@ from nose.plugins.attrib import attr ...@@ -10,7 +10,6 @@ from nose.plugins.attrib import attr
from courseware.testutils import RenderXBlockTestMixin from courseware.testutils import RenderXBlockTestMixin
from lti_provider import views, models from lti_provider import views, models
from lti_provider.signature_validator import SignatureValidator
from opaque_keys.edx.locator import CourseLocator, BlockUsageLocator from opaque_keys.edx.locator import CourseLocator, BlockUsageLocator
from student.tests.factories import UserFactory from student.tests.factories import UserFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
...@@ -66,7 +65,11 @@ class LtiTestMixin(object): ...@@ -66,7 +65,11 @@ class LtiTestMixin(object):
def setUp(self): def setUp(self):
super(LtiTestMixin, self).setUp() super(LtiTestMixin, self).setUp()
# Always accept the OAuth signature # Always accept the OAuth signature
SignatureValidator.verify = MagicMock(return_value=True) self.mock_verify = MagicMock(return_value=True)
patcher = patch('lti_provider.signature_validator.SignatureValidator.verify', self.mock_verify)
patcher.start()
self.addCleanup(patcher.stop)
self.consumer = models.LtiConsumer( self.consumer = models.LtiConsumer(
consumer_name='consumer', consumer_name='consumer',
consumer_key=LTI_DEFAULT_PARAMS['oauth_consumer_key'], consumer_key=LTI_DEFAULT_PARAMS['oauth_consumer_key'],
...@@ -139,7 +142,8 @@ class LtiLaunchTest(LtiTestMixin, TestCase): ...@@ -139,7 +142,8 @@ class LtiLaunchTest(LtiTestMixin, TestCase):
Verifies that the view returns Forbidden if the LTI OAuth signature is Verifies that the view returns Forbidden if the LTI OAuth signature is
incorrect. incorrect.
""" """
SignatureValidator.verify = MagicMock(return_value=False) self.mock_verify.return_value = False
request = build_launch_request() request = build_launch_request()
response = views.lti_launch(request, None, None) response = views.lti_launch(request, None, None)
self.assertEqual(response.status_code, 403) self.assertEqual(response.status_code, 403)
...@@ -147,7 +151,8 @@ class LtiLaunchTest(LtiTestMixin, TestCase): ...@@ -147,7 +151,8 @@ class LtiLaunchTest(LtiTestMixin, TestCase):
@patch('lti_provider.views.render_courseware') @patch('lti_provider.views.render_courseware')
def test_lti_consumer_record_supplemented_with_guid(self, _render): def test_lti_consumer_record_supplemented_with_guid(self, _render):
SignatureValidator.verify = MagicMock(return_value=False) self.mock_verify.return_value = False
request = build_launch_request() request = build_launch_request()
request.POST.update(LTI_OPTIONAL_PARAMS) request.POST.update(LTI_OPTIONAL_PARAMS)
with self.assertNumQueries(3): with self.assertNumQueries(3):
...@@ -178,7 +183,7 @@ class LtiLaunchTestRender(LtiTestMixin, RenderXBlockTestMixin, ModuleStoreTestCa ...@@ -178,7 +183,7 @@ class LtiLaunchTestRender(LtiTestMixin, RenderXBlockTestMixin, ModuleStoreTestCa
) )
if url_encoded_params: if url_encoded_params:
lti_launch_url += '?' + url_encoded_params lti_launch_url += '?' + url_encoded_params
SignatureValidator.verify = MagicMock(return_value=True)
return self.client.post(lti_launch_url, data=LTI_DEFAULT_PARAMS) return self.client.post(lti_launch_url, data=LTI_DEFAULT_PARAMS)
# The following test methods override the base tests for verifying access # The following test methods override the base tests for verifying access
......
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