def create_courseref(request): """ Create CourseRef and Course entry based on context_title. """ request_dict = request.session['LTI_POST'] if not request.session.get('is_valid'): return redirect(reverse('ct:home')) context_id = request_dict.get('context_id') roles_from_request = request_dict.get('roles', '').split(',') roles = list(set((ROLES_MAP.get(role, Role.ENROLLED) for role in roles_from_request))) # Make sure this context_id is not used course_ref = CourseRef.objects.filter(context_id=context_id).first() if course_ref: if Role.INSTRUCTOR in roles: return redirect(reverse('ct:course', args=(course_ref.course.id,))) else: return redirect(reverse('ct:home')) course = Course( title=request_dict.get('context_title', 'Course title for %s' % context_id), addedBy=request.user ) course.save() role = Role(role=Role.INSTRUCTOR, course=course, user=request.user) role.save() course_id = course.id course_ref = CourseRef( course=course, context_id=context_id, tc_guid=request_dict.get('tool_consumer_instance_guid', request.META.get('HTTP_HOST')) ) course_ref.save() course_ref.instructors.add(request.user) return redirect(reverse('ct:edit_course', args=(course_id,)))
class LTITestCase(TestCase): def setUp(self): """ Preconditions. """ self.client = Client() self.user = User.objects.create_user('test', '*****@*****.**', 'test') mocked_nonce = u'135685044251684026041377608307' mocked_timestamp = u'1234567890' mocked_decoded_signature = u'my_signature=' self.headers = { u'user_id': 1, u'lis_person_name_full': u'Test Username', u'lis_person_name_given': u'First', u'lis_person_name_family': u'Second', u'lis_person_contact_email_primary': u'*****@*****.**', u'lis_person_sourcedid': u'Test_Username', u'oauth_callback': u'about:blank', u'launch_presentation_return_url': '', u'lti_message_type': u'basic-lti-launch-request', u'lti_version': 'LTI-1p0', u'roles': u'Student', u'context_id': 1, u'tool_consumer_info_product_family_code': u'moodle', u'context_title': u'Test title', u'tool_consumer_instance_guid': u'test.dot.com', u'resource_link_id': 'dfgsfhrybvrth', u'lis_result_sourcedid': 'wesgaegagrreg', u'oauth_nonce': mocked_nonce, u'oauth_timestamp': mocked_timestamp, u'oauth_consumer_key': u'', u'oauth_signature_method': u'HMAC-SHA1', u'oauth_version': u'1.0', u'oauth_signature': mocked_decoded_signature } self.unit = Unit(title='Test title', addedBy=self.user) self.unit.save() self.course = Course(title='Test title', description='test description', access='Public', enrollCode='111', lockout='222', addedBy=self.user) self.course.save() self.course_ref = CourseRef( course=self.course, context_id=self.headers.get('context_id'), tc_guid=self.headers.get('tool_consumer_instance_guid') ) self.course_ref.save() self.course_ref.instructors.add(self.user) self.courseunit = CourseUnit( unit=self.unit, course=self.course, order=0, addedBy=self.user ) self.courseunit.save()
class LTITestCase(TestCase): def setUp(self): """ Preconditions. """ self.client = Client() self.user = User.objects.create_user('test', '*****@*****.**', 'test') mocked_nonce = u'135685044251684026041377608307' mocked_timestamp = u'1234567890' mocked_decoded_signature = u'my_signature=' self.headers = { u'user_id': 1, u'lis_person_name_full': u'Test Username', u'lis_person_name_given': u'First', u'lis_person_name_family': u'Second', u'lis_person_contact_email_primary': u'*****@*****.**', u'lis_person_sourcedid': u'Test_Username', u'oauth_callback': u'about:blank', u'launch_presentation_return_url': '', u'lti_message_type': u'basic-lti-launch-request', u'lti_version': 'LTI-1p0', u'roles': u'Student', u'context_id': 1, u'tool_consumer_info_product_family_code': u'moodle', u'context_title': u'Test title', u'tool_consumer_instance_guid': u'test.dot.com', u'resource_link_id': 'dfgsfhrybvrth', u'lis_result_sourcedid': 'wesgaegagrreg', u'oauth_nonce': mocked_nonce, u'oauth_timestamp': mocked_timestamp, u'oauth_consumer_key': u'', u'oauth_signature_method': u'HMAC-SHA1', u'oauth_version': u'1.0', u'oauth_signature': mocked_decoded_signature } self.unit = Unit(title='Test title', addedBy=self.user) self.unit.save() self.course = Course(title='Test title', description='test description', access='Public', enrollCode='111', lockout='222', addedBy=self.user) self.course.save() self.course_ref = CourseRef( course=self.course, context_id=self.headers.get('context_id'), tc_guid=self.headers.get('tool_consumer_instance_guid')) self.course_ref.save() self.course_ref.instructors.add(self.user) self.courseunit = CourseUnit(unit=self.unit, course=self.course, order=0, addedBy=self.user) self.courseunit.save()
def create_courseref(request): """ Create CourseRef and Course entry based on context_title. """ request_dict = request.session['LTI_POST'] if not request.session.get('is_valid'): return redirect(reverse('ct:home')) context_id = request_dict.get('context_id') roles_from_request = request_dict.get('roles', '').split(',') roles = list( set((ROLES_MAP.get(role, Role.ENROLLED) for role in roles_from_request))) # Make sure this context_id is not used course_ref = CourseRef.objects.filter(context_id=context_id).first() if course_ref: if Role.INSTRUCTOR in roles: return redirect(reverse('ct:course', args=(course_ref.course.id, ))) else: return redirect(reverse('ct:home')) course = Course(title=request_dict.get('context_title', 'Course title for %s' % context_id), addedBy=request.user) course.save() role = Role(role=Role.INSTRUCTOR, course=course, user=request.user) role.save() course_id = course.id course_ref = CourseRef(course=course, context_id=context_id, tc_guid=request_dict.get( 'tool_consumer_instance_guid', request.META.get('HTTP_HOST'))) course_ref.save() course_ref.instructors.add(request.user) return redirect(reverse('ct:edit_course', args=(course_id, )))
def setUp(self): """ Preconditions. """ from chat.fsm_plugin.chat import get_specs from chat.fsm_plugin.additional import get_specs as get_specs_additional self.client = Client() self.user = User.objects.create_user('test', '*****@*****.**', 'test') get_specs()[0].save_graph(self.user.username) get_specs_additional()[0].save_graph(self.user.username) mocked_nonce = u'135685044251684026041377608307' mocked_timestamp = u'1234567890' mocked_decoded_signature = u'my_signature=' self.headers = { u'user_id': 1, u'lis_person_name_full': u'Test Username', u'lis_person_name_given': u'First', u'lis_person_name_family': u'Second', u'lis_person_contact_email_primary': u'*****@*****.**', u'lis_person_sourcedid': u'Test_Username', u'oauth_callback': u'about:blank', u'launch_presentation_return_url': '', u'lti_message_type': u'basic-lti-launch-request', u'lti_version': 'LTI-1p0', u'roles': u'Student', u'context_id': 1, u'tool_consumer_info_product_family_code': u'moodle', u'context_title': u'Test title', u'tool_consumer_instance_guid': u'test.dot.com', u'resource_link_id': 'dfgsfhrybvrth', u'lis_result_sourcedid': 'wesgaegagrreg', u'oauth_nonce': mocked_nonce, u'oauth_timestamp': mocked_timestamp, u'oauth_consumer_key': u'consumer_key', u'oauth_signature_method': u'HMAC-SHA1', u'oauth_version': u'1.0', u'oauth_signature': mocked_decoded_signature } self.unit = Unit(title='Test title', addedBy=self.user) self.unit.save() self.course = Course(title='Test title', description='test description', access='Public', enrollCode='111', lockout='222', addedBy=self.user) self.course.save() self.course_ref = CourseRef( course=self.course, context_id=self.headers.get('context_id'), tc_guid=self.headers.get('tool_consumer_instance_guid') ) self.course_ref.save() self.course_ref.instructors.add(self.user) self.role1 = Role( role=Role.ENROLLED, user=self.user, course=self.course, ) self.role1.save() self.courseunit = CourseUnit( unit=self.unit, course=self.course, order=0, addedBy=self.user, releaseTime=timezone.now() ) self.courseunit.save() lesson = Lesson(title='title', text='text', addedBy=self.user) lesson.save() unitlesson = UnitLesson( unit=self.unit, order=0, lesson=lesson, addedBy=self.user, treeID=lesson.id ) unitlesson.save() self.lti_consumer = LtiConsumer( consumer_name='test', consumer_key='consumer_key', consumer_secret='test_key' ) self.lti_consumer.save()
def setUp(self): """ Preconditions. """ from chat.fsm_plugin.chat import get_specs from chat.fsm_plugin.additional import get_specs as get_specs_additional self.client = Client() self.user = User.objects.create_user('test', '*****@*****.**', 'test') get_specs()[0].save_graph(self.user.username) get_specs_additional()[0].save_graph(self.user.username) mocked_nonce = '135685044251684026041377608307' mocked_timestamp = '1234567890' mocked_decoded_signature = 'my_signature=' self.headers = { 'user_id': 1, 'lis_person_name_full': 'Test Username', 'lis_person_name_given': 'First', 'lis_person_name_family': 'Second', 'lis_person_contact_email_primary': '*****@*****.**', 'lis_person_sourcedid': 'Test_Username', 'oauth_callback': 'about:blank', 'launch_presentation_return_url': '', 'lti_message_type': 'basic-lti-launch-request', 'lti_version': 'LTI-1p0', 'roles': 'Student', 'context_id': 1, 'tool_consumer_info_product_family_code': 'moodle', 'context_title': 'Test title', 'tool_consumer_instance_guid': 'test.dot.com', 'resource_link_id': 'dfgsfhrybvrth', 'lis_result_sourcedid': 'wesgaegagrreg', 'oauth_nonce': mocked_nonce, 'oauth_timestamp': mocked_timestamp, 'oauth_consumer_key': 'consumer_key', 'oauth_signature_method': 'HMAC-SHA1', 'oauth_version': '1.0', 'oauth_signature': mocked_decoded_signature } self.unit = Unit(title='Test title', addedBy=self.user) self.unit.save() self.course = Course(title='Test title', description='test description', access='Public', enrollCode='111', lockout='222', addedBy=self.user) self.course.save() self.course_ref = CourseRef( course=self.course, context_id=self.headers.get('context_id'), tc_guid=self.headers.get('tool_consumer_instance_guid')) self.course_ref.save() self.course_ref.instructors.add(self.user) self.role1 = Role( role=Role.ENROLLED, user=self.user, course=self.course, ) self.role1.save() self.courseunit = CourseUnit(unit=self.unit, course=self.course, order=0, addedBy=self.user, releaseTime=timezone.now()) self.courseunit.save() lesson = Lesson(title='title', text='text', addedBy=self.user) lesson.save() unitlesson = UnitLesson(unit=self.unit, order=0, lesson=lesson, addedBy=self.user, treeID=lesson.id) unitlesson.save() self.lti_consumer = LtiConsumer(consumer_name='test', consumer_key='consumer_key', consumer_secret='test_key') self.lti_consumer.save()