|
10 | 10 | from django.test.client import RequestFactory |
11 | 11 | from django.urls import reverse |
12 | 12 | from opaque_keys.edx.locator import BlockUsageLocator, CourseLocator |
| 13 | +from openedx_events.learning.data import UserData, UserPersonalData, LtiProviderLaunchData, LtiProviderLaunchParamsData |
13 | 14 |
|
14 | 15 | from common.djangoapps.student.tests.factories import UserFactory |
15 | 16 | from lms.djangoapps.courseware.testutils import RenderXBlockTestMixin |
@@ -96,15 +97,36 @@ class LtiLaunchTest(LtiTestMixin, TestCase): |
96 | 97 | """ |
97 | 98 | Tests for the lti_launch view |
98 | 99 | """ |
| 100 | + @patch('lms.djangoapps.lti_provider.views.LTI_PROVIDER_LAUNCH_SUCCESS.send_event') |
99 | 101 | @patch('lms.djangoapps.lti_provider.views.render_courseware') |
100 | 102 | @patch('lms.djangoapps.lti_provider.views.authenticate_lti_user') |
101 | | - def test_valid_launch(self, _authenticate, render): |
| 103 | + def test_valid_launch(self, _authenticate, render, lti_launch_success_send_event): |
102 | 104 | """ |
103 | 105 | Verifies that the LTI launch succeeds when passed a valid request. |
104 | 106 | """ |
105 | 107 | request = build_launch_request() |
106 | 108 | views.lti_launch(request, str(COURSE_KEY), str(USAGE_KEY)) |
107 | 109 | render.assert_called_with(request, USAGE_KEY) |
| 110 | + lti_launch_success_send_event.assert_called_with( |
| 111 | + launch_data=LtiProviderLaunchData( |
| 112 | + user=UserData( |
| 113 | + id=request.user.id, |
| 114 | + is_active=request.user.is_active, |
| 115 | + pii=UserPersonalData( |
| 116 | + username=request.user.username, |
| 117 | + email=request.user.email, |
| 118 | + name=request.user.profile.name, |
| 119 | + ) |
| 120 | + ), |
| 121 | + course_key=COURSE_KEY, |
| 122 | + usage_key=USAGE_KEY, |
| 123 | + launch_params=LtiProviderLaunchParamsData( |
| 124 | + roles='Instructor,urn:lti:instrole:ims/lis/Administrator', |
| 125 | + context_id='lti_launch_context_id', |
| 126 | + user_id='LTI_User', extra_params={} |
| 127 | + ) |
| 128 | + ) |
| 129 | + ) |
108 | 130 |
|
109 | 131 | @patch('lms.djangoapps.lti_provider.views.render_courseware') |
110 | 132 | @patch('lms.djangoapps.lti_provider.views.store_outcome_parameters') |
|
0 commit comments