def test_get_dict_of_files_from_courses(self): """ """ dict_of_targets = TOD_Implementation.get_dict_of_files_from_courses( LTICourse.get_all_courses() ) self.assertIsInstance(dict_of_targets, dict) self.assertTrue(len(dict_of_targets['Fake Course']) == 2) self.assertTrue(self.target1 in dict_of_targets['Fake Course']) self.assertTrue(self.target2 in dict_of_targets['Fake Course'])
def test_launchLti_user_scope_canvas_no_platform_created_ok( lti_path, lti_launch_url, lti_launch_params_factory, ): # have to set ORGANIZATION to something else than HARVARDX settings.ORGANIZATION = "ATG" # user and course don't exist yet instructor_name = "audre_lorde" instructor_edxid = "{}{}".format(randint(1000, 65534), randint(1000, 65534)) user_roles = ["Administrator"] course_id = "hx+FancyCourse+TermCode+Year" resource_link_id = "some_string_to_be_the_FAKE_resource_link_id" params = lti_launch_params_factory( course_id=course_id, user_name=instructor_name, user_id=instructor_edxid, user_roles=user_roles, resource_link_id=resource_link_id, launch_url=lti_launch_url, course_name="{}+title".format(course_id), ) client = Client(enforce_csrf_checks=False) response = client.post( lti_path, data=params, ) assert response.status_code == 302 assert response.cookies.get("sessionid") expected_url = (reverse("hx_lti_initializer:course_admin_hub") + f"?resource_link_id={resource_link_id}" + f"&utm_source={client.session.session_key}") assert response.url == expected_url # check user was created user = User.objects.get(username=instructor_name) assert user is not None lti_profile = LTIProfile.objects.get(anon_id=instructor_edxid) assert lti_profile is not None assert lti_profile.user.username == user.username # scope is course assert lti_profile.scope == "course:{}".format(course_id) # check course was created course = LTICourse.get_course_by_id(course_id) assert course is not None assert len(LTICourse.get_all_courses()) == 1 assert course.course_admins.all()[0].anon_id == instructor_edxid assert course.course_name == "{}+title".format(course_id)
def test_LTICourse_get_all_courses(user_profile_factory): """ Checks that all courses are returned regardless of admin user """ profile1 = user_profile_factory(roles=["Instructor"]) profile2 = user_profile_factory() user1 = LTIProfile.objects.get(user_id=profile1.user.pk) user2 = LTIProfile.objects.get(user_id=profile2.user.pk) list_of_courses = LTICourse.get_all_courses() assert isinstance(list_of_courses, list) assert len(list_of_courses) == 0 LTICourse.create_course("test_course_id", user1) list_of_courses2 = LTICourse.get_all_courses() assert isinstance(list_of_courses2, list) assert len(list_of_courses2) == 1 LTICourse.create_course("test_course_id2", user2) list_of_courses3 = LTICourse.get_all_courses() assert isinstance(list_of_courses3, list) assert len(list_of_courses3) == 2
def test_launchLti_user_course_ok_no_context_title( lti_path, lti_launch_url, lti_launch_params_factory, ): # user and course don't exist yet instructor_name = "sylvia_plath" instructor_edxid = "{}{}".format(randint(1000, 65534), randint(1000, 65534)) user_roles = ["Administrator"] course_id = "hx+FANcyCourse+TermCode+Year" resource_link_id = "some_string_to_BE_THE_fake_resource_link_id" params = lti_launch_params_factory( course_id=course_id, user_name=instructor_name, user_id=instructor_edxid, user_roles=user_roles, resource_link_id=resource_link_id, launch_url=lti_launch_url, # 04feb20 naomi: context_title has to do with edx studio not # sending user_id in launch params to create course user. # course_name='{}+title'.format(course_id), ) client = Client(enforce_csrf_checks=False) response = client.post( lti_path, data=params, ) assert response.status_code == 302 assert response.cookies.get("sessionid") expected_url = (reverse("hx_lti_initializer:course_admin_hub") + f"?resource_link_id={resource_link_id}" + f"&utm_source={client.session.session_key}") assert response.url == expected_url # check user was created user = User.objects.get(username=instructor_name) assert user is not None lti_profile = LTIProfile.objects.get(anon_id=instructor_edxid) assert lti_profile is not None assert lti_profile.user.username == user.username # check course was created course = LTICourse.get_course_by_id(course_id) assert course is not None assert len(LTICourse.get_all_courses()) == 1 assert course.course_admins.all()[0].anon_id == instructor_edxid assert course.course_name.startswith("noname-")