def test_join_groups(self): mixin = LTIAuthMixin() ctx = LTICourseContextFactory() user = UserFactory() mixin.join_groups(self.lti, ctx, user) self.assertTrue(user in ctx.group.user_set.all()) self.assertTrue(user in ctx.faculty_group.user_set.all())
def test_join_groups_student(self): mixin = LTIAuthMixin() ctx = LTICourseContextFactory() user = UserFactory() self.lti.lti_params['roles'] = u'Learner' mixin.join_groups(self.lti, ctx, user) self.assertTrue(user in ctx.group.user_set.all()) self.assertFalse(user in ctx.faculty_group.user_set.all())
def test_reenable(self): view = LTICourseEnableView() ctx = LTICourseContextFactory() user = UserFactory() data = { 'group': ctx.group.id, 'faculty_group': ctx.faculty_group.id, 'lti-enable': '1' } # enable the first time request = RequestFactory().post('/', data) request.user = user view.request = request view.dispatch(request) ctx.refresh_from_db() self.assertTrue(ctx.enable)
def test_custom_course_context(self): lti = LTI('initial', 'any') with self.assertRaises(KeyError): lti.custom_course_context() lti.lti_params = BASE_LTI_PARAMS lti.lti_params['custom_course_context'] = 434 with self.assertRaises(LTICourseContext.DoesNotExist): lti.custom_course_context() ctx = LTICourseContextFactory() lti.lti_params['custom_course_context'] = 'abc' with self.assertRaises(ValueError): lti.custom_course_context() lti.lti_params['custom_course_context'] = ctx.uuid with self.assertRaises(LTICourseContext.DoesNotExist): lti.custom_course_context() ctx.enable = True ctx.save() self.assertEquals(lti.custom_course_context(), ctx)
def test_join_groups_teachingassistant(self): mixin = LTIAuthMixin() ctx = LTICourseContextFactory() user = UserFactory() self.lti.lti_params['roles'] = \ u'urn:lti:role:ims/lis/TeachingAssistant' mixin.join_groups(self.lti, ctx, user) self.assertTrue(user in ctx.group.user_set.all()) self.assertFalse(user in ctx.faculty_group.user_set.all()) with self.settings(LTI_ELEVATE_TEACHINGASSISTANTS=['instructure.edu']): mixin.join_groups(self.lti, ctx, user) self.assertTrue(user in ctx.group.user_set.all()) self.assertTrue(user in ctx.faculty_group.user_set.all())
def test_launch_custom_landing_page(self): with self.settings(PYLTI_CONFIG={'consumers': CONSUMERS}, LTI_EXTRA_PARAMETERS=['lti_version']): ctx = LTICourseContextFactory() request = generate_lti_request(ctx, 'canvas') view = LTIRoutingView() view.request = request response = view.dispatch(request) landing = 'http://testserver/lti/landing/{}/?lti_version=LTI-1p0&' self.assertEquals(response.status_code, 302) self.assertTrue( response.url, landing.format(ctx.lms_course_context)) self.assertIsNotNone(request.session[LTI_SESSION_KEY]) user = request.user self.assertFalse(user.has_usable_password()) self.assertEquals(user.email, '*****@*****.**') self.assertEquals(user.get_full_name(), 'Foo Baz') self.assertTrue(user in ctx.group.user_set.all()) self.assertTrue(user in ctx.faculty_group.user_set.all())
def test_embed(self): with self.settings(PYLTI_CONFIG={'consumers': CONSUMERS}, LTI_EXTRA_PARAMETERS=['lti_version']): ctx = LTICourseContextFactory() request = generate_lti_request(ctx, 'canvas', 'embed') view = LTIRoutingView() view.request = request response = view.dispatch(request) self.assertEquals(response.status_code, 302) self.assertEquals( response.url, 'http://testserver/asset/embed/?return_url=/asset/' '<i_version=LTI-1p0&') self.assertIsNotNone(request.session[LTI_SESSION_KEY]) user = request.user self.assertFalse(user.has_usable_password()) self.assertEquals(user.email, '*****@*****.**') self.assertEquals(user.get_full_name(), 'Foo Baz') self.assertTrue(user in ctx.group.user_set.all()) self.assertTrue(user in ctx.faculty_group.user_set.all())