def test_sender_control_file_registers_multiple_students_in_same_assignment( self, tmp_path): """ Does the LTIGradesSenderControlFile class registers students at same assignment level? """ # arrange sender_controlfile = LTIGradesSenderControlFile(tmp_path) assignment_name = 'Assignment1' lis_outcome_service_url = 'https://example.instructure.com/api/lti/v1/tools/111/grade_passback' lms_user_id = 'user1' lis_result_sourcedid = 'uniqueIDToIdentifyUserWithinAssignment' # act sender_controlfile.register_data(assignment_name, lis_outcome_service_url, lms_user_id, lis_result_sourcedid) # add SECOND student sender_controlfile.register_data(assignment_name, lis_outcome_service_url, 'user2', lis_result_sourcedid) # assert saved = sender_controlfile.get_assignment_by_name(assignment_name) assert len(saved['students']) == 2 # both students in test was saved with same lis_result_sourcedid value assert set([s['lms_user_id'] for s in saved['students']]) == {'user1', 'user2'}
def test_sender_control_file_registers_new_assignment(self, tmp_path): """ Does the LTIGradesSenderControlFile class registers new assignment data correctly? """ # arrange sender_controlfile = LTIGradesSenderControlFile(tmp_path) assignment_name = 'Assignment1' lis_outcome_service_url = 'https://example.instructure.com/api/lti/v1/tools/111/grade_passback' lms_user_id = 'user1' lis_result_sourcedid = 'uniqueIDToIdentifyUserWithinAssignment' # act sender_controlfile.register_data(assignment_name, lis_outcome_service_url, lms_user_id, lis_result_sourcedid) # assert saved = sender_controlfile.get_assignment_by_name(assignment_name) # item was saved assert saved is not None # url is the same that passed value assert saved['lis_outcome_service_url'] == lis_outcome_service_url # students property is a list assert type(saved['students']) == list # student was saved assert [ s for s in saved['students'] if s['lms_user_id'] == lms_user_id ]